package com.ruoyi.hkCamera.common;

import com.sun.jna.Callback;
import com.sun.jna.Library;
import com.sun.jna.Pointer;
import com.sun.jna.Union;
import com.sun.jna.examples.win32.W32API;
import com.sun.jna.platform.win32.WinDef;
import com.sun.jna.ptr.ByteByReference;
import com.sun.jna.ptr.IntByReference;
import com.sun.jna.ptr.ShortByReference;
import java.nio.ByteBuffer;
import java.util.Arrays;
import java.util.List;

//SDK接口说明,HCNetSDK.dll
public interface HCNetSDK extends Library {
    public static final int MAX_NAMELEN = 16;

    public static final int MAX_RIGHT = 32;

    public static final int NAME_LEN = 32;

    public static final int PASSWD_LEN = 16;

    public static final int SERIALNO_LEN = 48;

    public static final int MACADDR_LEN = 6;

    public static final int MAX_ETHERNET = 2;

    public static final int PATHNAME_LEN = 128;

    public static final int MAX_TIMESEGMENT_V30 = 8;

    public static final int MAX_TIMESEGMENT = 4;

    public static final int MAX_SHELTERNUM = 4;

    public static final int MAX_DAYS = 7;

    public static final int PHONENUMBER_LEN = 32;

    public static final int MAX_DISKNUM_V30 = 33;

    public static final int MAX_DISKNUM = 16;

    public static final int MAX_DISKNUM_V10 = 8;

    public static final int MAX_WINDOW_V30 = 32;

    public static final int MAX_WINDOW = 16;

    public static final int MAX_VGA_V30 = 4;

    public static final int MAX_VGA = 1;

    public static final int MAX_USERNUM_V30 = 32;

    public static final int MAX_USERNUM = 16;

    public static final int MAX_EXCEPTIONNUM_V30 = 32;

    public static final int MAX_EXCEPTIONNUM = 16;

    public static final int MAX_LINK = 6;

    public static final int MAX_DECPOOLNUM = 4;

    public static final int MAX_DECNUM = 4;

    public static final int MAX_TRANSPARENTNUM = 2;

    public static final int MAX_CYCLE_CHAN = 16;

    public static final int MAX_DIRNAME_LENGTH = 80;

    public static final int MAX_STRINGNUM_V30 = 8;

    public static final int MAX_STRINGNUM = 4;

    public static final int MAX_STRINGNUM_EX = 8;

    public static final int MAX_AUXOUT_V30 = 16;

    public static final int MAX_AUXOUT = 4;

    public static final int MAX_HD_GROUP = 16;

    public static final int MAX_NFS_DISK = 8;

    public static final int IW_ESSID_MAX_SIZE = 32;

    public static final int IW_ENCODING_TOKEN_MAX = 32;

    public static final int MAX_SERIAL_NUM = 64;

    public static final int MAX_DDNS_NUMS = 10;

    public static final int MAX_DOMAIN_NAME = 64;

    public static final int MAX_EMAIL_ADDR_LEN = 48;

    public static final int MAX_EMAIL_PWD_LEN = 32;

    public static final int MAXPROGRESS = 100;

    public static final int MAX_SERIALNUM = 2;

    public static final int CARDNUM_LEN = 20;

    public static final int MAX_VIDEOOUT_V30 = 4;

    public static final int MAX_VIDEOOUT = 2;

    public static final int MAX_PRESET_V30 = 256;

    public static final int MAX_TRACK_V30 = 256;

    public static final int MAX_CRUISE_V30 = 256;

    public static final int MAX_PRESET = 128;

    public static final int MAX_TRACK = 128;

    public static final int MAX_CRUISE = 128;

    public static final int CRUISE_MAX_PRESET_NUMS = 32;

    public static final int MAX_SERIAL_PORT = 8;

    public static final int MAX_PREVIEW_MODE = 8;

    public static final int MAX_MATRIXOUT = 16;

    public static final int LOG_INFO_LEN = 11840;

    public static final int DESC_LEN = 16;

    public static final int PTZ_PROTOCOL_NUM = 200;

    public static final int MAX_AUDIO = 1;

    public static final int MAX_AUDIO_V30 = 2;

    public static final int MAX_CHANNUM = 16;

    public static final int MAX_ALARMIN = 16;

    public static final int MAX_ALARMOUT = 4;

    public static final int MAX_ANALOG_CHANNUM = 32;

    public static final int MAX_ANALOG_ALARMOUT = 32;

    public static final int MAX_ANALOG_ALARMIN = 32;

    public static final int MAX_IP_ALARMIN_V40 = 4096;

    public static final int MAX_IP_ALARMOUT_V40 = 4096;

    public static final int MAX_ALARMOUT_V40 = 4128;

    public static final int MAX_ALARMIN_V40 = 4128;

    public static final int MAX_CHANNUM_V40 = 512;

    public static final int MAX_IP_DEVICE = 32;

    public static final int MAX_IP_CHANNEL = 32;

    public static final int MAX_IP_ALARMIN = 128;

    public static final int MAX_IP_ALARMOUT = 64;

    public static final int MAX_CHANNUM_V30 = 64;

    public static final int MAX_ALARMOUT_V30 = 96;

    public static final int MAX_ALARMIN_V30 = 160;

    public static final int MAX_IP_DEVICE_V40 = 64;

    public static final int STREAM_ID_LEN = 32;

    public static final int MAX_LICENSE_LEN = 16;

    public static final int MAX_LICENSE_LEN_EX = 32;

    public static final int MAX_CARDNO_LEN = 48;

    public static final int VCA_MAX_POLYGON_POINT_NUM = 10;

    public static final int MAX_ID_NUM_LEN = 32;

    public static final int MAX_ID_NAME_LEN = 128;

    public static final int MAX_ID_ADDR_LEN = 280;

    public static final int MAX_ID_ISSUING_AUTHORITY_LEN = 128;

    public static final int MAX_CARD_READER_NUM_512 = 512;

    public static final int ERROR_MSG_LEN = 32;

    public static final int MAX_FACE_NUM = 2;

    public static final int MAX_FINGER_PRINT_LEN = 768;

    public static final int DEV_TYPE_NAME_LEN = 24;

    public static final int MAX_FACE_PIC_NUM = 30;

    public static final int CARDNUM_LEN_V30 = 40;

    public static final int MAX_NOTICE_NUMBER_LEN = 32;

    public static final int MAX_NOTICE_THEME_LEN = 64;

    public static final int MAX_NOTICE_DETAIL_LEN = 1024;

    public static final int MAX_NOTICE_PIC_NUM = 6;

    public static final int MAX_DEV_NUMBER_LEN = 32;

    public static final int LOCK_NAME_LEN = 32;

    public static final int NET_SDK_EMPLOYEE_NO_LEN = 32;

    public static final int NET_SDK_UUID_LEN = 36;

    public static final int MAX_INQUEST_CDRW_NUM = 4;

    public static final int INQUEST_MESSAGE_LEN = 44;

    public static final int INQUEST_MAX_ROOM_NUM = 2;

    public static final int MAX_RESUME_SEGMENT = 2;

    public static final int SUPPORT_PD_NUM = 16;

    public static final int SUPPORT_ARRAY_NUM = 8;

    public static final int SUPPORT_VD_NUM = 128;

    public static final int SUPPORT_PD_NUM_ = 16;

    public static final int SUPPORT_PD_NUM_PARTTWO = 8;

    public static final int CARDNUM_LEN_OUT = 32;

    public static final int GUID_LEN = 16;

    public static final int MAX_ROIDETECT_NUM = 8;

    public static final int MAX_LANERECT_NUM = 5;

    public static final int MAX_FORTIFY_NUM = 10;

    public static final int MAX_INTERVAL_NUM = 4;

    public static final int MAX_CHJC_NUM = 3;

    public static final int MAX_VL_NUM = 5;

    public static final int MAX_DRIVECHAN_NUM = 16;

    public static final int MAX_COIL_NUM = 3;

    public static final int MAX_SIGNALLIGHT_NUM = 6;

    public static final int MAX_IOSPEED_GROUP_NUM = 4;

    public static final int MAX_IOOUT_NUM = 4;

    public static final int MAX_IOIN_NUM = 8;

    public static final int MAX_RELAY_NUM = 12;

    public static final int MAX_VEHICLE_TYPE_NUM = 8;

    public static final int MAX_IOIN_NUMEX = 10;

    public static final int MAX_ITC_LANE_NUM = 6;

    public static final int MAX_LANEAREA_NUM = 2;

    public static final int ITC_MAX_POLYGON_POINT_NUM = 20;

    public static final int MAX_ITC_SERIALCHECK_NUM = 8;

    public static final int MAX_LIGHT_NUM = 6;

    public static final int MAX_VIDEO_INTERVAL_NUM = 2;

    public static final int MAX_VIDEO_DETECT_LIGHT_NUM = 12;

    public static final int MAX_CALIB_RECOG_NUM = 2;

    public static final int MAX_RS485_NUM = 12;

    public static final int MAX_MOBILE_POLYGON_NUM = 3;

    public static final int MAX_MOBILE_DETECTLINE_NUM = 3;

    public static final int MAX_IOOUT_K_NUM = 8;

    public static final int NET_SDK_MAX_FDID_LEN = 256;

    public static final int NET_SDK_MAX_PICID_LEN = 256;

    public static final int NET_SDK_MAX_INDENTITY_KEY_LEN = 64;

    public static final int SEARCH_EVENT_INFO_LEN = 300;

    public static final int SEARCH_EVENT_INFO_LEN_V40 = 800;

    public static final int MAX_POS_KEYWORDS_NUM = 3;

    public static final int MAX_POS_KEYWORD_LEN = 128;

    public static final int INQUEST_CASE_LEN = 64;

    public static final int SEARCH_CASE_NO_LEN = 56;

    public static final int SEARCH_CASE_NAME_LEN = 100;

    public static final int SEARCH_LITIGANT_LEN = 32;

    public static final int SEARCH_CHIEF_JUDGE_LEN = 32;

    public static final int CASE_NO_RET_LEN = 52;

    public static final int CASE_NAME_RET_LEN = 64;

    public static final int LITIGANT_RET_LEN = 24;

    public static final int CHIEF_JUDGE_RET_LEN = 24;

    public static final int NET_SDK_CASETYPE_LEN = 32;

    public static final int NET_SDK_MAX_TAPE_INDEX_LEN = 32;

    public static final int NET_SDK_MAX_FILE_LEN = 256;

    public static final int NET_DVR_NOERROR = 0;

    public static final int NET_DVR_PASSWORD_ERROR = 1;

    public static final int NET_DVR_NOENOUGHPRI = 2;

    public static final int NET_DVR_NOINIT = 3;

    public static final int NET_DVR_CHANNEL_ERROR = 4;

    public static final int NET_DVR_OVER_MAXLINK = 5;

    public static final int NET_DVR_VERSIONNOMATCH = 6;

    public static final int NET_DVR_NETWORK_FAIL_CONNECT = 7;

    public static final int NET_DVR_NETWORK_SEND_ERROR = 8;

    public static final int NET_DVR_NETWORK_RECV_ERROR = 9;

    public static final int NET_DVR_NETWORK_RECV_TIMEOUT = 10;

    public static final int NET_DVR_NETWORK_ERRORDATA = 11;

    public static final int NET_DVR_ORDER_ERROR = 12;

    public static final int NET_DVR_OPERNOPERMIT = 13;

    public static final int NET_DVR_COMMANDTIMEOUT = 14;

    public static final int NET_DVR_ERRORSERIALPORT = 15;

    public static final int NET_DVR_ERRORALARMPORT = 16;

    public static final int NET_DVR_PARAMETER_ERROR = 17;

    public static final int NET_DVR_CHAN_EXCEPTION = 18;

    public static final int NET_DVR_NODISK = 19;

    public static final int NET_DVR_ERRORDISKNUM = 20;

    public static final int NET_DVR_DISK_FULL = 21;

    public static final int NET_DVR_DISK_ERROR = 22;

    public static final int NET_DVR_NOSUPPORT = 23;

    public static final int NET_DVR_BUSY = 24;

    public static final int NET_DVR_MODIFY_FAIL = 25;

    public static final int NET_DVR_PASSWORD_FORMAT_ERROR = 26;

    public static final int NET_DVR_DISK_FORMATING = 27;

    public static final int NET_DVR_DVRNORESOURCE = 28;

    public static final int NET_DVR_DVROPRATEFAILED = 29;

    public static final int NET_DVR_OPENHOSTSOUND_FAIL = 30;

    public static final int NET_DVR_DVRVOICEOPENED = 31;

    public static final int NET_DVR_TIMEINPUTERROR = 32;

    public static final int NET_DVR_NOSPECFILE = 33;

    public static final int NET_DVR_CREATEFILE_ERROR = 34;

    public static final int NET_DVR_FILEOPENFAIL = 35;

    public static final int NET_DVR_OPERNOTFINISH = 36;

    public static final int NET_DVR_GETPLAYTIMEFAIL = 37;

    public static final int NET_DVR_PLAYFAIL = 38;

    public static final int NET_DVR_FILEFORMAT_ERROR = 39;

    public static final int NET_DVR_DIR_ERROR = 40;

    public static final int NET_DVR_ALLOC_RESOURCE_ERROR = 41;

    public static final int NET_DVR_AUDIO_MODE_ERROR = 42;

    public static final int NET_DVR_NOENOUGH_BUF = 43;

    public static final int NET_DVR_CREATESOCKET_ERROR = 44;

    public static final int NET_DVR_SETSOCKET_ERROR = 45;

    public static final int NET_DVR_MAX_NUM = 46;

    public static final int NET_DVR_USERNOTEXIST = 47;

    public static final int NET_DVR_WRITEFLASHERROR = 48;

    public static final int NET_DVR_UPGRADEFAIL = 49;

    public static final int NET_DVR_CARDHAVEINIT = 50;

    public static final int NET_DVR_PLAYERFAILED = 51;

    public static final int NET_DVR_MAX_USERNUM = 52;

    public static final int NET_DVR_GETLOCALIPANDMACFAIL = 53;

    public static final int NET_DVR_NOENCODEING = 54;

    public static final int NET_DVR_IPMISMATCH = 55;

    public static final int NET_DVR_MACMISMATCH = 56;

    public static final int NET_DVR_UPGRADELANGMISMATCH = 57;

    public static final int NET_DVR_MAX_PLAYERPORT = 58;

    public static final int NET_DVR_NOSPACEBACKUP = 59;

    public static final int NET_DVR_NODEVICEBACKUP = 60;

    public static final int NET_DVR_PICTURE_BITS_ERROR = 61;

    public static final int NET_DVR_PICTURE_DIMENSION_ERROR = 62;

    public static final int NET_DVR_PICTURE_SIZ_ERROR = 63;

    public static final int NET_DVR_LOADPLAYERSDKFAILED = 64;

    public static final int NET_DVR_LOADPLAYERSDKPROC_ERROR = 65;

    public static final int NET_DVR_LOADDSSDKFAILED = 66;

    public static final int NET_DVR_LOADDSSDKPROC_ERROR = 67;

    public static final int NET_DVR_DSSDK_ERROR = 68;

    public static final int NET_DVR_VOICEMONOPOLIZE = 69;

    public static final int NET_DVR_JOINMULTICASTFAILED = 70;

    public static final int NET_DVR_CREATEDIR_ERROR = 71;

    public static final int NET_DVR_BINDSOCKET_ERROR = 72;

    public static final int NET_DVR_SOCKETCLOSE_ERROR = 73;

    public static final int NET_DVR_USERID_ISUSING = 74;

    public static final int NET_DVR_SOCKETLISTEN_ERROR = 75;

    public static final int NET_DVR_PROGRAM_EXCEPTION = 76;

    public static final int NET_DVR_WRITEFILE_FAILED = 77;

    public static final int NET_DVR_FORMAT_READONLY = 78;

    public static final int NET_DVR_WITHSAMEUSERNAME = 79;

    public static final int NET_DVR_DEVICETYPE_ERROR = 80;

    public static final int NET_DVR_LANGUAGE_ERROR = 81;

    public static final int NET_DVR_PARAVERSION_ERROR = 82;

    public static final int NET_DVR_IPCHAN_NOTALIVE = 83;

    public static final int NET_DVR_RTSP_SDK_ERROR = 84;

    public static final int NET_DVR_CONVERT_SDK_ERROR = 85;

    public static final int NET_DVR_IPC_COUNT_OVERFLOW = 86;

    public static final int NET_PLAYM4_NOERROR = 500;

    public static final int NET_PLAYM4_PARA_OVER = 501;

    public static final int NET_PLAYM4_ORDER_ERROR = 502;

    public static final int NET_PLAYM4_TIMER_ERROR = 503;

    public static final int NET_PLAYM4_DEC_VIDEO_ERROR = 504;

    public static final int NET_PLAYM4_DEC_AUDIO_ERROR = 505;

    public static final int NET_PLAYM4_ALLOC_MEMORY_ERROR = 506;

    public static final int NET_PLAYM4_OPEN_FILE_ERROR = 507;

    public static final int NET_PLAYM4_CREATE_OBJ_ERROR = 508;

    public static final int NET_PLAYM4_CREATE_DDRAW_ERROR = 509;

    public static final int NET_PLAYM4_CREATE_OFFSCREEN_ERROR = 510;

    public static final int NET_PLAYM4_BUF_OVER = 511;

    public static final int NET_PLAYM4_CREATE_SOUND_ERROR = 512;

    public static final int NET_PLAYM4_SET_VOLUME_ERROR = 513;

    public static final int NET_PLAYM4_SUPPORT_FILE_ONLY = 514;

    public static final int NET_PLAYM4_SUPPORT_STREAM_ONLY = 515;

    public static final int NET_PLAYM4_SYS_NOT_SUPPORT = 516;

    public static final int NET_PLAYM4_FILEHEADER_UNKNOWN = 517;

    public static final int NET_PLAYM4_VERSION_INCORRECT = 518;

    public static final int NET_PALYM4_INIT_DECODER_ERROR = 519;

    public static final int NET_PLAYM4_CHECK_FILE_ERROR = 520;

    public static final int NET_PLAYM4_INIT_TIMER_ERROR = 521;

    public static final int NET_PLAYM4_BLT_ERROR = 522;

    public static final int NET_PLAYM4_UPDATE_ERROR = 523;

    public static final int NET_PLAYM4_OPEN_FILE_ERROR_MULTI = 524;

    public static final int NET_PLAYM4_OPEN_FILE_ERROR_VIDEO = 525;

    public static final int NET_PLAYM4_JPEG_COMPRESS_ERROR = 526;

    public static final int NET_PLAYM4_EXTRACT_NOT_SUPPORT = 527;

    public static final int NET_PLAYM4_EXTRACT_DATA_ERROR = 528;

    public static final int NET_DVR_SUPPORT_DDRAW = 1;

    public static final int NET_DVR_SUPPORT_BLT = 2;

    public static final int NET_DVR_SUPPORT_BLTFOURCC = 4;

    public static final int NET_DVR_SUPPORT_BLTSHRINKX = 8;

    public static final int NET_DVR_SUPPORT_BLTSHRINKY = 16;

    public static final int NET_DVR_SUPPORT_BLTSTRETCHX = 32;

    public static final int NET_DVR_SUPPORT_BLTSTRETCHY = 64;

    public static final int NET_DVR_SUPPORT_SSE = 128;

    public static final int NET_DVR_SUPPORT_MMX = 256;

    public static final int LIGHT_PWRON = 2;

    public static final int WIPER_PWRON = 3;

    public static final int FAN_PWRON = 4;

    public static final int HEATER_PWRON = 5;

    public static final int AUX_PWRON1 = 6;

    public static final int AUX_PWRON2 = 7;

    public static final int SET_PRESET = 8;

    public static final int CLE_PRESET = 9;

    public static final int ZOOM_IN = 11;

    public static final int ZOOM_OUT = 12;

    public static final int FOCUS_NEAR = 13;

    public static final int FOCUS_FAR = 14;

    public static final int IRIS_OPEN = 15;

    public static final int IRIS_CLOSE = 16;

    public static final int TILT_UP = 21;

    public static final int TILT_DOWN = 22;

    public static final int PAN_LEFT = 23;

    public static final int PAN_RIGHT = 24;

    public static final int UP_LEFT = 25;

    public static final int UP_RIGHT = 26;

    public static final int DOWN_LEFT = 27;

    public static final int DOWN_RIGHT = 28;

    public static final int PAN_AUTO = 29;

    public static final int FILL_PRE_SEQ = 30;

    public static final int SET_SEQ_DWELL = 31;

    public static final int SET_SEQ_SPEED = 32;

    public static final int CLE_PRE_SEQ = 33;

    public static final int STA_MEM_CRUISE = 34;

    public static final int STO_MEM_CRUISE = 35;

    public static final int RUN_CRUISE = 36;

    public static final int RUN_SEQ = 37;

    public static final int STOP_SEQ = 38;

    public static final int GOTO_PRESET = 39;

    public static final int NET_DVR_PLAYSTART = 1;

    public static final int NET_DVR_PLAYSTOP = 2;

    public static final int NET_DVR_PLAYPAUSE = 3;

    public static final int NET_DVR_PLAYRESTART = 4;

    public static final int NET_DVR_PLAYFAST = 5;

    public static final int NET_DVR_PLAYSLOW = 6;

    public static final int NET_DVR_PLAYNORMAL = 7;

    public static final int NET_DVR_PLAYFRAME = 8;

    public static final int NET_DVR_PLAYSTARTAUDIO = 9;

    public static final int NET_DVR_PLAYSTOPAUDIO = 10;

    public static final int NET_DVR_PLAYAUDIOVOLUME = 11;

    public static final int NET_DVR_PLAYSETPOS = 12;

    public static final int NET_DVR_PLAYGETPOS = 13;

    public static final int NET_DVR_PLAYGETTIME = 14;

    public static final int NET_DVR_PLAYGETFRAME = 15;

    public static final int NET_DVR_GETTOTALFRAMES = 16;

    public static final int NET_DVR_GETTOTALTIME = 17;

    public static final int NET_DVR_THROWBFRAME = 20;

    public static final int NET_DVR_SETSPEED = 24;

    public static final int NET_DVR_KEEPALIVE = 25;

    public static final int NET_DVR_SET_TRANS_TYPE = 32;

    public static final int KEY_CODE_1 = 1;

    public static final int KEY_CODE_2 = 2;

    public static final int KEY_CODE_3 = 3;

    public static final int KEY_CODE_4 = 4;

    public static final int KEY_CODE_5 = 5;

    public static final int KEY_CODE_6 = 6;

    public static final int KEY_CODE_7 = 7;

    public static final int KEY_CODE_8 = 8;

    public static final int KEY_CODE_9 = 9;

    public static final int KEY_CODE_0 = 10;

    public static final int KEY_CODE_POWER = 11;

    public static final int KEY_CODE_MENU = 12;

    public static final int KEY_CODE_ENTER = 13;

    public static final int KEY_CODE_CANCEL = 14;

    public static final int KEY_CODE_UP = 15;

    public static final int KEY_CODE_DOWN = 16;

    public static final int KEY_CODE_LEFT = 17;

    public static final int KEY_CODE_RIGHT = 18;

    public static final int KEY_CODE_EDIT = 19;

    public static final int KEY_CODE_ADD = 20;

    public static final int KEY_CODE_MINUS = 21;

    public static final int KEY_CODE_PLAY = 22;

    public static final int KEY_CODE_REC = 23;

    public static final int KEY_CODE_PAN = 24;

    public static final int KEY_CODE_M = 25;

    public static final int KEY_CODE_A = 26;

    public static final int KEY_CODE_F1 = 27;

    public static final int KEY_CODE_F2 = 28;

    public static final int KEY_PTZ_UP_START = 15;

    public static final int KEY_PTZ_UP_STO = 32;

    public static final int KEY_PTZ_DOWN_START = 16;

    public static final int KEY_PTZ_DOWN_STOP = 33;

    public static final int KEY_PTZ_LEFT_START = 17;

    public static final int KEY_PTZ_LEFT_STOP = 34;

    public static final int KEY_PTZ_RIGHT_START = 18;

    public static final int KEY_PTZ_RIGHT_STOP = 35;

    public static final int KEY_PTZ_AP1_START = 19;

    public static final int KEY_PTZ_AP1_STOP = 36;

    public static final int KEY_PTZ_AP2_START = 24;

    public static final int KEY_PTZ_AP2_STOP = 37;

    public static final int KEY_PTZ_FOCUS1_START = 26;

    public static final int KEY_PTZ_FOCUS1_STOP = 38;

    public static final int KEY_PTZ_FOCUS2_START = 25;

    public static final int KEY_PTZ_FOCUS2_STOP = 39;

    public static final int KEY_PTZ_B1_START = 40;

    public static final int KEY_PTZ_B1_STOP = 41;

    public static final int KEY_PTZ_B2_START = 42;

    public static final int KEY_PTZ_B2_STOP = 43;

    public static final int KEY_CODE_11 = 44;

    public static final int KEY_CODE_12 = 45;

    public static final int KEY_CODE_13 = 46;

    public static final int KEY_CODE_14 = 47;

    public static final int KEY_CODE_15 = 48;

    public static final int KEY_CODE_16 = 49;

    public static final int NET_DVR_GET_DEVICECFG = 100;

    public static final int NET_DVR_SET_DEVICECFG = 101;

    public static final int NET_DVR_GET_DEVICECFG_V40 = 1100;

    public static final int NET_DVR_SET_DEVICECFG_V40 = 1101;

    public static final int NET_DVR_GET_NETCFG = 102;

    public static final int NET_DVR_SET_NETCFG = 103;

    public static final int NET_DVR_GET_PICCFG = 104;

    public static final int NET_DVR_SET_PICCFG = 105;

    public static final int NET_DVR_GET_COMPRESSCFG = 106;

    public static final int NET_DVR_SET_COMPRESSCFG = 107;

    public static final int NET_DVR_GET_RECORDCFG = 108;

    public static final int NET_DVR_SET_RECORDCFG = 109;

    public static final int NET_DVR_GET_DECODERCFG = 110;

    public static final int NET_DVR_SET_DECODERCFG = 111;

    public static final int NET_DVR_GET_RS232CFG = 112;

    public static final int NET_DVR_SET_RS232CFG = 113;

    public static final int NET_DVR_GET_ALARMINCFG = 114;

    public static final int NET_DVR_SET_ALARMINCFG = 115;

    public static final int NET_DVR_GET_ALARMOUTCFG = 116;

    public static final int NET_DVR_SET_ALARMOUTCFG = 117;

    public static final int NET_DVR_GET_TIMECFG = 118;

    public static final int NET_DVR_SET_TIMECFG = 119;

    public static final int NET_DVR_GET_PREVIEWCFG = 120;

    public static final int NET_DVR_SET_PREVIEWCFG = 121;

    public static final int NET_DVR_GET_VIDEOOUTCFG = 122;

    public static final int NET_DVR_SET_VIDEOOUTCFG = 123;

    public static final int NET_DVR_GET_USERCFG = 124;

    public static final int NET_DVR_SET_USERCFG = 125;

    public static final int NET_DVR_GET_EXCEPTIONCFG = 126;

    public static final int NET_DVR_SET_EXCEPTIONCFG = 127;

    public static final int NET_DVR_GET_ZONEANDDST = 128;

    public static final int NET_DVR_SET_ZONEANDDST = 129;

    public static final int NET_DVR_GET_SHOWSTRING = 130;

    public static final int NET_DVR_SET_SHOWSTRING = 131;

    public static final int NET_DVR_GET_EVENTCOMPCFG = 132;

    public static final int NET_DVR_SET_EVENTCOMPCFG = 133;

    public static final int NET_DVR_GET_AUXOUTCFG = 140;

    public static final int NET_DVR_SET_AUXOUTCFG = 141;

    public static final int NET_DVR_GET_PREVIEWCFG_AUX = 142;

    public static final int NET_DVR_SET_PREVIEWCFG_AUX = 143;

    public static final int NET_DVR_GET_PICCFG_EX = 200;

    public static final int NET_DVR_SET_PICCFG_EX = 201;

    public static final int NET_DVR_GET_USERCFG_EX = 202;

    public static final int NET_DVR_SET_USERCFG_EX = 203;

    public static final int NET_DVR_GET_COMPRESSCFG_EX = 204;

    public static final int NET_DVR_SET_COMPRESSCFG_EX = 205;

    public static final int NET_DVR_GET_NETAPPCFG = 222;

    public static final int NET_DVR_SET_NETAPPCFG = 223;

    public static final int NET_DVR_GET_NTPCFG = 224;

    public static final int NET_DVR_SET_NTPCFG = 225;

    public static final int NET_DVR_GET_DDNSCFG = 226;

    public static final int NET_DVR_SET_DDNSCFG = 227;

    public static final int NET_DVR_GET_EMAILCFG = 228;

    public static final int NET_DVR_SET_EMAILCFG = 229;

    public static final int NET_DVR_GET_NFSCFG = 230;

    public static final int NET_DVR_SET_NFSCFG = 231;

    public static final int NET_DVR_GET_SHOWSTRING_EX = 238;

    public static final int NET_DVR_SET_SHOWSTRING_EX = 239;

    public static final int NET_DVR_GET_NETCFG_OTHER = 244;

    public static final int NET_DVR_SET_NETCFG_OTHER = 245;

    public static final int NET_DVR_GET_EMAILPARACFG = 250;

    public static final int NET_DVR_SET_EMAILPARACFG = 251;

    public static final int NET_DVR_GET_DDNSCFG_EX = 274;

    public static final int NET_DVR_SET_DDNSCFG_EX = 275;

    public static final int NET_DVR_SET_PTZPOS = 292;

    public static final int NET_DVR_GET_PTZPOS = 293;

    public static final int NET_DVR_GET_PTZSCOPE = 294;

    public static final int NET_DVR_COMPLETE_RESTORE_CTRL = 3420;

    public static final int NET_DVR_GET_NETCFG_V30 = 1000;

    public static final int NET_DVR_SET_NETCFG_V30 = 1001;

    public static final int NET_DVR_GET_PICCFG_V30 = 1002;

    public static final int NET_DVR_SET_PICCFG_V30 = 1003;

    public static final int NET_DVR_GET_PICCFG_V40 = 6179;

    public static final int NET_DVR_SET_PICCFG_V40 = 6180;

    public static final int NET_DVR_GET_AES_KEY = 6113;

    public static final int NET_DVR_GET_RECORDCFG_V30 = 1004;

    public static final int NET_DVR_SET_RECORDCFG_V30 = 1005;

    public static final int NET_DVR_GET_USERCFG_V30 = 1006;

    public static final int NET_DVR_SET_USERCFG_V30 = 1007;

    public static final int NET_DVR_GET_DDNSCFG_V30 = 1010;

    public static final int NET_DVR_SET_DDNSCFG_V30 = 1011;

    public static final int NET_DVR_GET_EMAILCFG_V30 = 1012;

    public static final int NET_DVR_SET_EMAILCFG_V30 = 1013;

    public static final int NET_DVR_GET_CRUISE = 1020;

    public static final int NET_DVR_SET_CRUISE = 1021;

    public static final int NET_DVR_GET_ALARMINCFG_V30 = 1024;

    public static final int NET_DVR_SET_ALARMINCFG_V30 = 1025;

    public static final int NET_DVR_GET_ALARMOUTCFG_V30 = 1026;

    public static final int NET_DVR_SET_ALARMOUTCFG_V30 = 1027;

    public static final int NET_DVR_GET_VIDEOOUTCFG_V30 = 1028;

    public static final int NET_DVR_SET_VIDEOOUTCFG_V30 = 1029;

    public static final int NET_DVR_GET_SHOWSTRING_V30 = 1030;

    public static final int NET_DVR_SET_SHOWSTRING_V30 = 1031;

    public static final int NET_DVR_GET_EXCEPTIONCFG_V30 = 1034;

    public static final int NET_DVR_SET_EXCEPTIONCFG_V30 = 1035;

    public static final int NET_DVR_GET_RS232CFG_V30 = 1036;

    public static final int NET_DVR_SET_RS232CFG_V30 = 1037;

    public static final int NET_DVR_GET_COMPRESSCFG_V30 = 1040;

    public static final int NET_DVR_SET_COMPRESSCFG_V30 = 1041;

    public static final int NET_DVR_GET_DECODERCFG_V30 = 1042;

    public static final int NET_DVR_SET_DECODERCFG_V30 = 1043;

    public static final int NET_DVR_GET_PREVIEWCFG_V30 = 1044;

    public static final int NET_DVR_SET_PREVIEWCFG_V30 = 1045;

    public static final int NET_DVR_GET_PREVIEWCFG_AUX_V30 = 1046;

    public static final int NET_DVR_SET_PREVIEWCFG_AUX_V30 = 1047;

    public static final int NET_DVR_GET_IPPARACFG = 1048;

    public static final int NET_DVR_SET_IPPARACFG = 1049;

    public static final int NET_DVR_GET_IPPARACFG_V40 = 1062;

    public static final int NET_DVR_SET_IPPARACFG_V40 = 1063;

    public static final int NET_DVR_GET_IPALARMINCFG = 1050;

    public static final int NET_DVR_SET_IPALARMINCFG = 1051;

    public static final int NET_DVR_GET_IPALARMOUTCFG = 1052;

    public static final int NET_DVR_SET_IPALARMOUTCFG = 1053;

    public static final int NET_DVR_GET_HDCFG = 1054;

    public static final int NET_DVR_SET_HDCFG = 1055;

    public static final int NET_DVR_GET_HDGROUP_CFG = 1056;

    public static final int NET_DVR_SET_HDGROUP_CFG = 1057;

    public static final int NET_DVR_GET_COMPRESSCFG_AUD = 1058;

    public static final int NET_DVR_SET_COMPRESSCFG_AUD = 1059;

    public static final int NET_SDK_FINDMEDICALFILE = 3954;

    public static final int NET_SDK_FINDMEDICALPICTURE = 3955;

    public static final int NET_DVR_GET_RAPIDMOVE_DETECTION = 3539;

    public static final int NET_DVR_SET_RAPIDMOVE_DETECTION = 3540;

    public static final int NET_DVR_GET_RAPIDMOVE_TRIGGER = 3543;

    public static final int NET_DVR_SET_RAPIDMOVE_TRIGGER = 3544;

    public static final int NET_DVR_GET_RAPIDMOVE_SCHEDULE = 3545;

    public static final int NET_DVR_SET_RAPIDMOVE_SCHEDULE = 3546;

    public static final int NET_DVR_GET_PRESET_NAME = 3383;

    public static final int NET_DVR_SET_PRESET_NAME = 3382;

    public static final int NET_DVR_GET_RULECFG_V42 = 5049;

    public static final int NET_DVR_SET_RULECFG_V42 = 5050;

    public static final int NET_DVR_SET_PLATECFG = 150;

    public static final int NET_DVR_GET_PLATECFG = 151;

    public static final int NET_DVR_SET_RULECFG = 152;

    public static final int NET_DVR_GET_RULECFG = 153;

    public static final int NET_DVR_SET_LF_CFG = 160;

    public static final int NET_DVR_GET_LF_CFG = 161;

    public static final int NET_DVR_SET_IVMS_STREAMCFG = 162;

    public static final int NET_DVR_GET_IVMS_STREAMCFG = 163;

    public static final int NET_DVR_SET_VCA_CTRLCFG = 164;

    public static final int NET_DVR_GET_VCA_CTRLCFG = 165;

    public static final int NET_DVR_SET_VCA_MASK_REGION = 166;

    public static final int NET_DVR_GET_VCA_MASK_REGION = 167;

    public static final int NET_DVR_SET_VCA_ENTER_REGION = 168;

    public static final int NET_DVR_GET_VCA_ENTER_REGION = 169;

    public static final int NET_DVR_SET_VCA_LINE_SEGMENT = 170;

    public static final int NET_DVR_GET_VCA_LINE_SEGMENT = 171;

    public static final int NET_DVR_SET_IVMS_MASK_REGION = 172;

    public static final int NET_DVR_GET_IVMS_MASK_REGION = 173;

    public static final int NET_DVR_SET_IVMS_ENTER_REGION = 174;

    public static final int NET_DVR_GET_IVMS_ENTER_REGION = 175;

    public static final int NET_DVR_SET_IVMS_BEHAVIORCFG = 176;

    public static final int NET_DVR_GET_IVMS_BEHAVIORCFG = 177;

    public static final int NET_DVR_GET_TRAVERSE_PLANE_DETECTION = 3360;

    public static final int NET_DVR_SET_TRAVERSE_PLANE_DETECTION = 3361;

    public static final int NET_DVR_GET_FIELD_DETECTION = 3362;

    public static final int NET_DVR_SET_FIELD_DETECTION = 3363;

    public static final int NET_DVR_GET_STREAM_INFO = 6023;

    public static final int NET_DVR_GET_STREAM_RECORD_STATUS = 6021;

    public static final int NET_DVR_GET_ALL_VEHICLE_CONTROL_LIST = 3124;

    public static final int NET_DVR_VEHICLELIST_CTRL_START = 3133;

    public static final int ENUM_SENDDATA = 0;

    public static final int NET_DVR_GET_LEDDISPLAY_CFG = 3673;

    public static final int NET_DVR_SET_LEDDISPLAY_CFG = 3672;

    public static final int NET_DVR_SET_VOICEBROADCAST_CFG = 3675;

    public static final int NET_DVR_SET_CHARGE_ACCOUNTINFO = 3662;

    public static final int NET_DVR_GET_TRAFFIC_DATA = 3141;

    public static final int NET_DVR_GET_TRAFFIC_FLOW = 3142;

    public static final int NET_DVR_GET_CCDPARAMCFG_EX = 3368;

    public static final int NET_DVR_SET_CCDPARAMCFG_EX = 3369;

    public static final int NET_DVR_GET_FOCUSMODECFG = 3305;

    public static final int NET_DVR_SET_FOCUSMODECFG = 3306;

    public static final int NET_DVR_GET_SUPPLEMENTLIGHT = 3728;

    public static final int NET_DVR_SET_SUPPLEMENTLIGHT = 3729;

    public static final int NET_DVR_GET_FACECONTRAST_TRIGGER = 3965;

    public static final int NET_DVR_SET_FACECONTRAST_TRIGGER = 3966;

    public static final int NET_DVR_GET_FACECONTRAST_SCHEDULE = 3968;

    public static final int NET_DVR_SET_FACECONTRAST_SCHEDULE = 3969;

    public static final int NET_DVR_INQUEST_GET_CDW_STATUS = 6350;

    public static final int NET_DVR_GET_REALTIME_THERMOMETRY = 3629;

    public static final int NET_DVR_GET_MANUALTHERM_INFO = 6706;

    public static final int NET_DVR_GET_THERMOMETRY_MODE = 6765;

    public static final int NET_DVR_SET_THERMOMETRY_MODE = 6766;

    public static final int NET_DVR_GET_PTZABSOLUTEEX = 6696;

    public static final int NET_DVR_GET_THERMOMETRY_PRESETINFO = 3624;

    public static final int NET_DVR_SET_THERMOMETRY_PRESETINFO = 3625;

    public static final int NET_DVR_GET_THERMOMETRYRULE_TEMPERATURE_INFO = 23001;

    public static final int NET_DVR_SET_DEVSERVER_CFG = 3258;

    public static final int NET_DVR_GET_PHY_DISK_INFO = 6306;

    public static final int NET_DVR_GET_WORK_STATUS = 6189;

    public static final int NET_DVR_GET_MONTHLY_RECORD_DISTRIBUTION = 6164;

    public static final int NET_DVR_GET_CURTRIGGERMODE = 3130;

    public static final int NET_ITC_GET_TRIGGERCFG = 3003;

    public static final int NET_ITC_SET_TRIGGERCFG = 3004;

    public static final int NET_ITC_GET_VIDEO_TRIGGERCFG = 3017;

    public static final int NET_ITC_SET_VIDEO_TRIGGERCFG = 3018;

    public static final int NET_DVR_GET_MULTI_STREAM_COMPRESSIONCFG = 3216;

    public static final int NET_DVR_SET_MULTI_STREAM_COMPRESSIONCFG = 3217;

    public static final int NET_DVR_GET_CMS_CFG = 2070;

    public static final int NET_DVR_SET_CMS_CFG = 2071;

    public static final int NET_DVR_GET_ALARM_INFO = 4193;

    public static final int NET_DVR_GET_CARD_CFG = 2116;

    public static final int NET_DVR_SET_CARD_CFG = 2117;

    public static final int NET_DVR_GET_CARD_CFG_V50 = 2178;

    public static final int NET_DVR_SET_CARD_CFG_V50 = 2179;

    public static final int NET_DVR_GET_FACE_PARAM_CFG = 2507;

    public static final int NET_DVR_SET_FACE_PARAM_CFG = 2508;

    public static final int NET_DVR_DEL_FACE_PARAM_CFG = 2509;

    public static final int NET_DVR_CLEAR_ACS_PARAM = 2118;

    public static final int NET_DVR_DEL_FINGERPRINT_CFG = 2152;

    public static final int NET_DVR_GET_FINGERPRINT_CFG_V50 = 2183;

    public static final int NET_DVR_SET_FINGERPRINT_CFG_V50 = 2184;

    public static final int NET_DVR_DEL_FINGERPRINT_CFG_V50 = 2517;

    public static final int NET_DVR_GET_CARD_RIGHT_WEEK_PLAN_V50 = 2304;

    public static final int NET_DVR_SET_CARD_RIGHT_WEEK_PLAN_V50 = 2305;

    public static final int NET_DVR_GET_CARD_RIGHT_PLAN_TEMPLATE_V50 = 2322;

    public static final int NET_DVR_SET_CARD_RIGHT_PLAN_TEMPLATE_V50 = 2323;

    public static final int NET_DVR_SET_DOOR_STATUS_PLAN_TEMPLATE = 2107;

    public static final int NET_DVR_GET_DOOR_CFG = 2108;

    public static final int NET_DVR_SET_DOOR_CFG = 2109;

    public static final int NET_DVR_GET_DOOR_STATUS_PLAN = 2110;

    public static final int NET_DVR_SET_DOOR_STATUS_PLAN = 2111;

    public static final int NET_DVR_GET_WEEK_PLAN_CFG = 2100;

    public static final int NET_DVR_SET_WEEK_PLAN_CFG = 2101;

    public static final int NET_DVR_GET_EVENT_CARD_LINKAGE_CFG_V50 = 2181;

    public static final int NET_DVR_SET_EVENT_CARD_LINKAGE_CFG_V50 = 2182;

    public static final int NET_DVR_CAPTURE_FACE_INFO = 2510;

    public static final int NET_DVR_CAPTURE_FINGERPRINT_INFO = 2504;

    public static final int NET_DVR_GET_ACS_EVENT = 2514;

    public static final int NET_DVR_GET_CARD_READER_CFG_V50 = 2505;

    public static final int NET_DVR_SET_CARD_READER_CFG_V50 = 2506;

    public static final int NET_DVR_GET_REGISTER_INFO = 2511;

    public static final int NET_DVR_GET_SMSRELATIVEPARA_V50 = 2512;

    public static final int NET_DVR_SET_SMSRELATIVEPARA_V50 = 2513;

    public static final int NET_DVR_GET_MULTI_CARD_CFG_V50 = 2515;

    public static final int NET_DVR_SET_MULTI_CARD_CFG_V50 = 2516;

    public static final int NET_DVR_GET_EVENT_CARD_LINKAGE_CFG_V51 = 2518;

    public static final int NET_DVR_SET_EVENT_CARD_LINKAGE_CFG_V51 = 2519;

    public static final int NET_DVR_SET_EXAM_INFO = 2530;

    public static final int NET_DVR_SET_EXAMINEE_INFO = 2531;

    public static final int NET_DVR_SEARCH_EXAM_COMPARE_RESULT = 2532;

    public static final int NET_DVR_BULK_CHECK_FACE_PICTURE = 2533;

    public static final int NET_DVR_JSON_CONFIG = 2550;

    public static final int NET_DVR_FACE_DATA_RECORD = 2551;

    public static final int NET_DVR_FACE_DATA_SEARCH = 2552;

    public static final int NET_DVR_FACE_DATA_MODIFY = 2553;

    public static final int NET_DVR_CAPTURE_DATA_SEARCH = 2554;

    public static final int NET_DVR_SET_FORM_DATA = 2555;

    public static final int NET_DVR_GET_FORM_DATA = 2556;

    public static final int NET_DVR_GET_CARD = 2560;

    public static final int NET_DVR_SET_CARD = 2561;

    public static final int NET_DVR_GET_FACE = 2566;

    public static final int NET_DVR_SET_FACE = 2567;

    public static final int NET_DVR_DEL_CARD = 2562;

    public static final int NET_DVR_GET_FINGERPRINT = 2563;

    public static final int NET_DVR_SET_FINGERPRINT = 2564;

    public static final int NET_DVR_DEL_FINGERPRINT = 2565;

    public static final int NET_DVR_GET_ACS_WORK_STATUS_V50 = 2180;

    public static final int NET_DVR_GET_ACS_CFG = 2159;

    public static final int NET_DVR_SET_ACS_CFG = 2160;

    public static final int NET_DVR_BULK_UPLOAD_ID_BLOCKLIST = 2521;

    public static final int NET_DVR_SET_SENSOR_CFG = 1180;

    public static final int NET_DVR_GET_SENSOR_CFG = 1181;

    public static final int NET_DVR_SET_ALARMIN_PARAM = 1182;

    public static final int NET_DVR_GET_ALARMIN_PARAM = 1183;

    public static final int NET_DVR_SET_ALARMOUT_PARAM = 1184;

    public static final int NET_DVR_GET_ALARMOUT_PARAM = 1185;

    public static final int NET_DVR_SET_SIREN_PARAM = 1186;

    public static final int NET_DVR_GET_SIREN_PARAM = 1187;

    public static final int NET_DVR_SET_ALARM_RS485CFG = 1188;

    public static final int NET_DVR_GET_ALARM_RS485CFG = 1189;

    public static final int NET_DVR_GET_ALARMHOST_MAIN_STATUS = 1190;

    public static final int NET_DVR_GET_ALARMHOST_OTHER_STATUS = 1191;

    public static final int NET_DVR_SET_ALARMHOST_ENABLECFG = 1192;

    public static final int NET_DVR_GET_ALARMHOST_ENABLECFG = 1193;

    public static final int NET_DVR_SET_ALARM_CAMCFG = 1194;

    public static final int NET_DVR_GET_ALARM_CAMCFG = 1195;

    public static final int NET_DVR_SET_ALARMHOST_RS485_SLOT_CFG = 2055;

    public static final int NET_DVR_GET_ALARMHOST_RS485_SLOT_CFG = 2056;

    public static final int NET_DVR_SET_VIDEOWALLDISPLAYMODE = 1730;

    public static final int NET_DVR_GET_VIDEOWALLDISPLAYMODE = 1731;

    public static final int NET_DVR_GET_VIDEOWALLDISPLAYNO = 1732;

    public static final int NET_DVR_SET_VIDEOWALLDISPLAYPOSITION = 1733;

    public static final int NET_DVR_GET_VIDEOWALLDISPLAYPOSITION = 1734;

    public static final int NET_DVR_GET_VIDEOWALLWINDOWPOSITION = 1735;

    public static final int NET_DVR_SET_VIDEOWALLWINDOWPOSITION = 1736;

    public static final int NET_DVR_VIDEOWALLWINDOW_CLOSEALL = 1737;

    public static final int NET_DVR_SET_VIRTUALLED = 1738;

    public static final int NET_DVR_GET_VIRTUALLED = 1739;

    public static final int NET_DVR_GET_IMAGE_CUT_MODE = 1740;

    public static final int NET_DVR_SET_IMAGE_CUT_MODE = 1741;

    public static final int NET_DVR_GET_USING_SERIALPORT = 1742;

    public static final int NET_DVR_SET_USING_SERIALPORT = 1743;

    public static final int NET_DVR_SCENE_CONTROL = 1744;

    public static final int NET_DVR_GET_CURRENT_SCENE = 1745;

    public static final int NET_DVR_GET_VW_SCENE_PARAM = 1746;

    public static final int NET_DVR_SET_VW_SCENE_PARAM = 1747;

    public static final int NET_DVR_DISPLAY_CHANNO_CONTROL = 1748;

    public static final int NET_DVR_GET_WIN_DEC_INFO = 1749;

    public static final int NET_DVR_RESET_VIDEOWALLDISPLAYPOSITION = 1750;

    public static final int NET_DVR_SET_VW_AUDIO_CFG = 1752;

    public static final int NET_DVR_GET_VW_AUDIO_CFG = 1753;

    public static final int NET_DVR_GET_GBT28181_DECCHANINFO_CFG = 1754;

    public static final int NET_DVR_SET_GBT28181_DECCHANINFO_CFG = 1755;

    public static final int NET_DVR_SET_MAINBOARD_SERIAL = 1756;

    public static final int NET_DVR_GET_MAINBOARD_SERIAL = 1757;

    public static final int NET_DVR_GET_SUBBOARD_INFO = 1758;

    public static final int NET_DVR_GET_SUBBOARD_EXCEPTION = 1759;

    public static final int NET_DVR_MATRIX_WALL_SET = 9001;

    public static final int NET_DVR_MATRIX_WALL_GET = 9002;

    public static final int NET_DVR_WALLWIN_GET = 9003;

    public static final int NET_DVR_WALLWIN_SET = 9004;

    public static final int NET_DVR_WALLWINPARAM_SET = 9005;

    public static final int NET_DVR_WALLWINPARAM_GET = 9006;

    public static final int NET_DVR_WALLSCENEPARAM_GET = 9007;

    public static final int NET_DVR_WALLSCENEPARAM_SET = 9008;

    public static final int NET_DVR_MATRIX_GETWINSTATUS = 9009;

    public static final int NET_DVR_GET_WINASSOCIATEDDEVINFO = 9010;

    public static final int NET_DVR_WALLOUTPUT_GET = 9011;

    public static final int NET_DVR_WALLOUTPUT_SET = 9012;

    public static final int NET_DVR_GET_UNITEDMATRIXSYSTEM = 9013;

    public static final int NET_DVR_GET_WALL_CFG = 9014;

    public static final int NET_DVR_SET_WALL_CFG = 9015;

    public static final int NET_DVR_CLOSE_ALL_WND = 9016;

    public static final int NET_DVR_SWITCH_WIN_TOP = 9017;

    public static final int NET_DVR_SWITCH_WIN_BOTTOM = 9018;

    public static final int NET_DVR_CLOSE_ALL_WND_V41 = 9019;

    public static final int NET_DVR_GET_WALL_WINDOW_V41 = 9020;

    public static final int NET_DVR_SET_WALL_WINDOW_V41 = 9021;

    public static final int NET_DVR_GET_CURRENT_SCENE_V41 = 9022;

    public static final int NET_DVR_GET_WALL_SCENE_PARAM_V41 = 9023;

    public static final int NET_DVR_SET_WALL_SCENE_PARAM_V41 = 9024;

    public static final int NET_DVR_GET_MATRIX_LOGO_CFG = 9025;

    public static final int NET_DVR_SET_MATRIX_LOGO_CFG = 9026;

    public static final int NET_DVR_GET_WIN_LOGO_CFG = 9027;

    public static final int NET_DVR_SET_WIN_LOGO_CFG = 9028;

    public static final int NET_DVR_DELETE_LOGO = 9029;

    public static final int NET_DVR_SET_DISPLAY_EFFECT_CFG = 9030;

    public static final int NET_DVR_GET_DISPLAY_EFFECT_CFG = 9031;

    public static final int NET_DVR_DEC_PLAY_REMOTE_FILE = 9032;

    public static final int NET_DVR_DEC_PLAY_REMOTE_FILE_V50 = 9314;

    public static final int NET_DVR_GET_WIN_ZOOM_STATUS = 9033;

    public static final int NET_DVR_GET_ALL_MATRIX_LOGOCFG = 9034;

    public static final int NET_DVR_FILE_SUCCESS = 1000;

    public static final int NET_DVR_FILE_NOFIND = 1001;

    public static final int NET_DVR_ISFINDING = 1002;

    public static final int NET_DVR_NOMOREFILE = 1003;

    public static final int NET_DVR_FILE_EXCEPTION = 1004;

    public static final int COMM_ALARM = 4352;

    public static final int COMM_TRADEINFO = 5376;

    public static final int COMM_ALARM_V30 = 16384;

    public static final int COMM_ALARM_V40 = 16391;

    public static final int COMM_ALARM_RULE = 4354;

    public static final int COMM_ALARM_PDC = 4355;

    public static final int COMM_UPLOAD_PLATE_RESULT = 10240;

    public static final int COMM_ITS_PLATE_RESULT = 12368;

    public static final int COMM_IPCCFG = 16385;

    public static final int COMM_ITS_PARK_VEHICLE = 12374;

    public static final int COMM_VEHICLE_CONTROL_ALARM = 12377;

    public static final int COMM_ALARM_TFS = 4371;

    public static final int COMM_ALARM_TPS_V41 = 4372;

    public static final int COMM_ALARM_AID_V41 = 4373;

    public static final int COMM_UPLOAD_FACESNAP_RESULT = 4370;

    public static final int COMM_SNAP_MATCH_ALARM = 10498;

    public static final int COMM_ALARM_ACS = 20482;

    public static final int COMM_ID_INFO_ALARM = 20992;

    public static final int COMM_VCA_ALARM = 18835;

    public static final int COMM_ISAPI_ALARM = 24585;

    public static final int COMM_ALARM_TPS_STATISTICS = 12418;

    public static final int COMM_ALARM_TPS_REAL_TIME = 12417;

    public static final int COMM_ALARMHOST_CID_ALARM = 4391;

    public static final int COMM_SENSOR_VALUE_UPLOAD = 4384;

    public static final int COMM_SENSOR_ALARM = 4385;

    public static final int COMM_SWITCH_ALARM = 4386;

    public static final int COMM_ALARMHOST_EXCEPTION = 4387;

    public static final int COMM_ALARMHOST_OPERATEEVENT_ALARM = 4388;

    public static final int COMM_ALARMHOST_SAFETYCABINSTATE = 4389;

    public static final int COMM_ALARMHOST_ALARMOUTSTATUS = 4390;

    public static final int COMM_ALARMHOST_DATA_UPLOAD = 4393;

    public static final int COMM_UPLOAD_VIDEO_INTERCOM_EVENT = 4402;

    public static final int COMM_ALARM_VIDEO_INTERCOM = 4403;

    public static final int COMM_THERMOMETRY_ALARM = 21010;

    public static final int COMM_FIREDETECTION_ALARM = 18833;

    public static final int COMM_THERMOMETRY_DIFF_ALARM = 20753;

    public static final int COMM_ALARM_SHIPSDETECTION = 17697;

    public static final int COMM_UPLOAD_AIOP_VIDEO = 16417;

    public static final int COMM_UPLOAD_AIOP_PICTURE = 16418;

    public static final int COMM_UPLOAD_AIOP_POLLING_SNAP = 16419;

    public static final int COMM_UPLOAD_AIOP_POLLING_VIDEO = 16420;

    public static final int COMM_IPC_AUXALARM_RESULT = 10272;

    public static final int EXCEPTION_EXCHANGE = 32768;

    public static final int EXCEPTION_AUDIOEXCHANGE = 32769;

    public static final int EXCEPTION_ALARM = 32770;

    public static final int EXCEPTION_PREVIEW = 32771;

    public static final int EXCEPTION_SERIAL = 32772;

    public static final int EXCEPTION_RECONNECT = 32773;

    public static final int EXCEPTION_ALARMRECONNECT = 32774;

    public static final int EXCEPTION_SERIALRECONNECT = 32775;

    public static final int EXCEPTION_PLAYBACK = 32784;

    public static final int EXCEPTION_DISKFMT = 32785;

    public static final int NET_DVR_SYSHEAD = 1;

    public static final int NET_DVR_STREAMDATA = 2;

    public static final int NET_DVR_AUDIOSTREAMDATA = 3;

    public static final int NET_DVR_STD_VIDEODATA = 4;

    public static final int NET_DVR_STD_AUDIODATA = 5;

    public static final int NET_DVR_REALPLAYEXCEPTION = 111;

    public static final int NET_DVR_REALPLAYNETCLOSE = 112;

    public static final int NET_DVR_REALPLAY5SNODATA = 113;

    public static final int NET_DVR_REALPLAYRECONNECT = 114;

    public static final int NET_DVR_PLAYBACKOVER = 101;

    public static final int NET_DVR_PLAYBACKEXCEPTION = 102;

    public static final int NET_DVR_PLAYBACKNETCLOSE = 103;

    public static final int NET_DVR_PLAYBACK5SNODATA = 104;

    public static final int DVR = 1;

    public static final int ATMDVR = 2;

    public static final int DVS = 3;

    public static final int DEC = 4;

    public static final int ENC_DEC = 5;

    public static final int DVR_HC = 6;

    public static final int DVR_HT = 7;

    public static final int DVR_HF = 8;

    public static final int DVR_HS = 9;

    public static final int DVR_HTS = 10;

    public static final int DVR_HB = 11;

    public static final int DVR_HCS = 12;

    public static final int DVS_A = 13;

    public static final int DVR_HC_S = 14;

    public static final int DVR_HT_S = 15;

    public static final int DVR_HF_S = 16;

    public static final int DVR_HS_S = 17;

    public static final int ATMDVR_S = 18;

    public static final int LOWCOST_DVR = 19;

    public static final int DEC_MAT = 20;

    public static final int DVR_MOBILE = 21;

    public static final int DVR_HD_S = 22;

    public static final int DVR_HD_SL = 23;

    public static final int DVR_HC_SL = 24;

    public static final int DVR_HS_ST = 25;

    public static final int DVS_HW = 26;

    public static final int IPCAM = 30;

    public static final int MEGA_IPCAM = 31;

    public static final int IPCAM_X62MF = 32;

    public static final int IPDOME = 40;

    public static final int MEGA_IPDOME = 41;

    public static final int IPMOD = 50;

    public static final int DS71XX_H = 71;

    public static final int DS72XX_H_S = 72;

    public static final int DS73XX_H_S = 73;

    public static final int DS81XX_HS_S = 81;

    public static final int DS81XX_HL_S = 82;

    public static final int DS81XX_HC_S = 83;

    public static final int DS81XX_HD_S = 84;

    public static final int DS81XX_HE_S = 85;

    public static final int DS81XX_HF_S = 86;

    public static final int DS81XX_AH_S = 87;

    public static final int DS81XX_AHF_S = 88;

    public static final int DS90XX_HF_S = 90;

    public static final int DS91XX_HF_S = 91;

    public static final int DS91XX_HD_S = 92;

    public static final int MAJOR_OPERATION = 3;

    public static final int MINOR_START_DVR = 65;

    public static final int MINOR_STOP_DVR = 66;

    public static final int MINOR_STOP_ABNORMAL = 67;

    public static final int MINOR_REBOOT_DVR = 68;

    public static final int MINOR_LOCAL_LOGIN = 80;

    public static final int MINOR_LOCAL_LOGOUT = 81;

    public static final int MINOR_LOCAL_CFG_PARM = 82;

    public static final int MINOR_LOCAL_PLAYBYFILE = 83;

    public static final int MINOR_LOCAL_PLAYBYTIME = 84;

    public static final int MINOR_LOCAL_START_REC = 85;

    public static final int MINOR_LOCAL_STOP_REC = 86;

    public static final int MINOR_LOCAL_PTZCTRL = 87;

    public static final int MINOR_LOCAL_PREVIEW = 88;

    public static final int MINOR_LOCAL_MODIFY_TIME = 89;

    public static final int MINOR_LOCAL_UPGRADE = 90;

    public static final int MINOR_LOCAL_RECFILE_OUTPUT = 91;

    public static final int MINOR_LOCAL_FORMAT_HDD = 92;

    public static final int MINOR_LOCAL_CFGFILE_OUTPUT = 93;

    public static final int MINOR_LOCAL_CFGFILE_INPUT = 94;

    public static final int MINOR_LOCAL_COPYFILE = 95;

    public static final int MINOR_LOCAL_LOCKFILE = 96;

    public static final int MINOR_LOCAL_UNLOCKFILE = 97;

    public static final int MINOR_LOCAL_DVR_ALARM = 98;

    public static final int MINOR_IPC_ADD = 99;

    public static final int MINOR_IPC_DEL = 100;

    public static final int MINOR_IPC_SET = 101;

    public static final int MINOR_LOCAL_START_BACKUP = 102;

    public static final int MINOR_LOCAL_STOP_BACKUP = 103;

    public static final int MINOR_LOCAL_COPYFILE_START_TIME = 104;

    public static final int MINOR_LOCAL_COPYFILE_END_TIME = 105;

    public static final int MINOR_REMOTE_LOGIN = 112;

    public static final int MINOR_REMOTE_LOGOUT = 113;

    public static final int MINOR_REMOTE_START_REC = 114;

    public static final int MINOR_REMOTE_STOP_REC = 115;

    public static final int MINOR_START_TRANS_CHAN = 116;

    public static final int MINOR_STOP_TRANS_CHAN = 117;

    public static final int MINOR_REMOTE_GET_PARM = 118;

    public static final int MINOR_REMOTE_CFG_PARM = 119;

    public static final int MINOR_REMOTE_GET_STATUS = 120;

    public static final int MINOR_REMOTE_ARM = 121;

    public static final int MINOR_REMOTE_DISARM = 122;

    public static final int MINOR_REMOTE_REBOOT = 123;

    public static final int MINOR_START_VT = 124;

    public static final int MINOR_STOP_VT = 125;

    public static final int MINOR_REMOTE_UPGRADE = 126;

    public static final int MINOR_REMOTE_PLAYBYFILE = 127;

    public static final int MINOR_REMOTE_PLAYBYTIME = 128;

    public static final int MINOR_REMOTE_PTZCTRL = 129;

    public static final int MINOR_REMOTE_FORMAT_HDD = 130;

    public static final int MINOR_REMOTE_STOP = 131;

    public static final int MINOR_REMOTE_LOCKFILE = 132;

    public static final int MINOR_REMOTE_UNLOCKFILE = 133;

    public static final int MINOR_REMOTE_CFGFILE_OUTPUT = 134;

    public static final int MINOR_REMOTE_CFGFILE_INTPUT = 135;

    public static final int MINOR_REMOTE_RECFILE_OUTPUT = 136;

    public static final int MINOR_REMOTE_DVR_ALARM = 137;

    public static final int MINOR_REMOTE_IPC_ADD = 138;

    public static final int MINOR_REMOTE_IPC_DEL = 139;

    public static final int MINOR_REMOTE_IPC_SET = 140;

    public static final int MINOR_REBOOT_VCA_LIB = 141;

    public static final int MAJOR_INFORMATION = 4;

    public static final int MINOR_HDD_INFO = 161;

    public static final int MINOR_SMART_INFO = 162;

    public static final int MINOR_REC_START = 163;

    public static final int MINOR_REC_STOP = 164;

    public static final int MINOR_REC_OVERDUE = 165;

    public static final int MINOR_LINK_START = 166;

    public static final int MINOR_LINK_STOP = 167;

    public static final int PARA_VIDEOOUT = 1;

    public static final int PARA_IMAGE = 2;

    public static final int PARA_ENCODE = 4;

    public static final int PARA_NETWORK = 8;

    public static final int PARA_ALARM = 16;

    public static final int PARA_EXCEPTION = 32;

    public static final int PARA_DECODER = 64;

    public static final int PARA_RS232 = 128;

    public static final int PARA_PREVIEW = 256;

    public static final int PARA_SECURITY = 512;

    public static final int PARA_DATETIME = 1024;

    public static final int PARA_FRAMETYPE = 2048;

    public static final int PARA_VCA_RULE = 4096;

    public static final int DS6001_HF_B = 60;

    public static final int DS6001_HF_P = 61;

    public static final int DS6002_HF_B = 62;

    public static final int DS6101_HF_B = 63;

    public static final int IVMS_2000 = 64;

    public static final int DS9000_IVS = 65;

    public static final int DS8004_AHL_A = 66;

    public static final int DS6101_HF_P = 67;

    public static final int VCA_DEV_ABILITY = 256;

    public static final int VCA_CHAN_ABILITY = 272;

    public static final int DEVICE_ABILITY_INFO = 17;

    public static final int NET_DVR_CHECK_USER_STATUS = 20005;

    public static final int MAX_MULTI_AREA_NUM = 24;

    public static final int NET_DVR_GET_SUBWND_DECODE_OSD = 9183;

    public static final int NET_DVR_GET_SUBWND_DECODE_OSD_ALL = 9184;

    public static final int NET_DVR_SET_SUBWND_DECODE_OSD = 9185;

    public static final int NET_DVR_GET_SUBWND_DECODE_OSD_CAP = 9186;

    public static final int NET_DVR_GET_DECODE_CHANNEL_OSD = 9187;

    public static final int NET_DVR_SET_DECODE_CHANNEL_OSD = 9188;

    public static final int MAX_PLAN_ACTION_NUM = 32;

    public static final int DAYS_A_WEEK = 7;

    public static final int MAX_PLAN_COUNT = 16;

    public static final int MAX_LEN_OSD_CONTENT = 256;

    public static final int MAX_NUM_OSD_ONE_SUBWND = 8;

    public static final int MAX_NUM_SPLIT_WND = 64;

    public static final int MAX_NUM_OSD = 8;

    public static final int MAX_CYCLE_CHAN_V30 = 64;

    public static final int STREAM_PASSWD_LEN = 12;

    public static final int NET_DVR_DEV_ADDRESS_MAX_LEN = 129;

    public static final int NET_DVR_LOGIN_USERNAME_MAX_LEN = 64;

    public static final int NET_DVR_LOGIN_PASSWD_MAX_LEN = 64;

    public static final int MAX_ALERTLINE_NUM = 8;

    public static final int MAX_INTRUSIONREGION_NUM = 8;

    public static final int CID_CODE_LEN = 4;

    public static final int DEV_SERIAL_LEN = 9;

    public static final int ACCOUNTNUM_LEN = 6;

    public static final int ACCOUNTNUM_LEN_32 = 32;

    public static final int MAX_PARKNO_LEN = 16;

    public static final int MAX_ID_LEN = 48;

    public static final int MAX_TRAFFIC_PICTURE_NUM = 8;

    public static final int PICTURE_NAME_LEN = 64;

    public static final int MAX_LED_INFO_LEN = 512;

    public static final int MAX_VOICE_INFO_LEN = 128;

    public static final int DOOR_NAME_LEN = 32;

    public static final int STRESS_PASSWORD_LEN = 8;

    public static final int SUPER_PASSWORD_LEN = 8;

    public static final int UNLOCK_PASSWORD_LEN = 8;

    public static final int MAX_ALARMHOST_ALARMIN_NUM = 512;

    public static final int MAX_ALARMHOST_ALARMOUT_NUM = 512;

    public static final int ACS_CARD_NO_LEN = 32;

    public static final int MAX_GROUP_NUM_128 = 128;

    public static final int MAX_DOOR_NUM_256 = 256;

    public static final int CARD_PASSWORD_LEN = 8;

    public static final int MAX_CARD_READER_NUM = 64;

    public static final int MAX_DOOR_CODE_LEN = 8;

    public static final int MAX_LOCK_CODE_LEN = 8;

    public static final int MAX_CARD_RIGHT_PLAN_NUM = 4;

    public static final int MAX_CASE_SENSOR_NUM = 8;

    public static final int CARD_READER_DESCRIPTION = 32;

    public static final int NET_SDK_CONFIG_STATUS_SUCCESS = 1000;

    public static final int NET_SDK_CONFIG_STATUS_NEED_WAIT = 1001;

    public static final int NET_SDK_CONFIG_STATUS_FINISH = 1002;

    public static final int NET_SDK_CONFIG_STATUS_FAILED = 1003;

    public static final int NET_SDK_CONFIG_STATUS_EXCEPTION = 1004;

    public static final int NET_SDK_GET_NEXT_STATUS_SUCCESS = 1000;

    public static final int NET_SDK_GET_NEXT_STATUS_NEED_WAIT = 1001;

    public static final int NET_SDK_NEXT_STATUS__FINISH = 1002;

    public static final int NET_SDK_GET_NEXT_STATUS_FAILED = 1003;

    public static final int NET_DEV_NAME_LEN = 64;

    public static final int NET_SDK_MONITOR_ID_LEN = 64;

    public static final int ACS_PARAM_DOOR_STATUS_WEEK_PLAN = 1;

    public static final int ACS_PARAM_VERIFY_WEEK_PALN = 2;

    public static final int ACS_PARAM_CARD_RIGHT_WEEK_PLAN = 4;

    public static final int ACS_PARAM_DOOR_STATUS_HOLIDAY_PLAN = 8;

    public static final int ACS_PARAM_VERIFY_HOLIDAY_PALN = 16;

    public static final int ACS_PARAM_CARD_RIGHT_HOLIDAY_PLAN = 32;

    public static final int ACS_PARAM_DOOR_STATUS_HOLIDAY_GROUP = 64;

    public static final int ACS_PARAM_VERIFY_HOLIDAY_GROUP = 128;

    public static final int ACS_PARAM_CARD_RIGHT_HOLIDAY_GROUP = 256;

    public static final int ACS_PARAM_DOOR_STATUS_PLAN_TEMPLATE = 512;

    public static final int ACS_PARAM_VERIFY_PALN_TEMPLATE = 1024;

    public static final int ACS_PARAM_CARD_RIGHT_PALN_TEMPLATE = 2048;

    public static final int ACS_PARAM_CARD = 4096;

    public static final int ACS_PARAM_GROUP = 8192;

    public static final int ACS_PARAM_ANTI_SNEAK_CFG = 16384;

    public static final int ACS_PAPAM_EVENT_CARD_LINKAGE = 32768;

    public static final int ACS_PAPAM_CARD_PASSWD_CFG = 65536;

    public static final int ACS_PARAM_PERSON_STATISTICS_CFG = 131072;

    public static final int ACS_PARAM_BLOCKLIST_PICTURE = 262144;

    public static final int ACS_PARAM_ID_BLOCKLIST = 524288;

    public static final int ACS_PARAM_EXAM_INFO = 1048576;

    public static final int ACS_PARAM_EXAMINEE_INFO = 2097152;

    public static final int ACS_PARAM_FAILED_FACE_INFO = 4194304;

    public static final int TEMPLATE_NAME_LEN = 32;

    public static final int MAX_HOLIDAY_GROUP_NUM = 16;

    public static final int ILLEGAL_LEN = 32;

    public static final int MONITORSITE_ID_LEN = 48;

    public static final int DEVICE_ID_LEN = 48;

    public static final int MAX_OVERLAP_ITEM_NUM = 50;

    public static final int MAX_HUMAN_BIRTHDATE_LEN = 10;

    public static final int MAX_TPS_RULE = 8;

    public static final int MAX_FILE_PATH_LEN = 256;

    public static final int MAX_SHIPS_NUM = 20;

    public static final int NET_SDK_MAX_FILE_PATH = 256;

    public static final int MAX_DISPLAY_NUM = 512;

    public static final int MAX_UPLOADFILE_URL_LEN = 240;

    public static final int IMPORT_DATA_TO_FACELIB = 39;

    public static final int NET_DVR_GET_GISINFO = 3711;

    boolean NET_DVR_Init();

    boolean NET_DVR_Cleanup();

    boolean NET_DVR_SetSDKInitCfg(int paramInt, Pointer paramPointer);

    boolean NET_DVR_SetSDKLocalCfg(int paramInt, Pointer paramPointer);

    boolean NET_DVR_GetSDKLocalCfg(int paramInt, Pointer paramPointer);

    boolean NET_DVR_SetDVRMessage(int paramInt1, int paramInt2);

    boolean NET_DVR_SetExceptionCallBack_V30(int paramInt1, int paramInt2, FExceptionCallBack paramFExceptionCallBack, Pointer paramPointer);

    boolean NET_DVR_SetDVRMessCallBack(FMessCallBack paramFMessCallBack);

    boolean NET_DVR_SetDVRMessCallBack_EX(FMessCallBack_EX paramFMessCallBack_EX);

    int NET_DVR_FindNextFile_Card(int paramInt, NET_DVR_FINDDATA_CARD paramNET_DVR_FINDDATA_CARD);

    int NET_DVR_FindFile_Card(int paramInt1, int paramInt2, int paramInt3, NET_DVR_TIME paramNET_DVR_TIME1, NET_DVR_TIME paramNET_DVR_TIME2);

    boolean NET_DVR_LockFileByName(int paramInt, String paramString);

    boolean NET_DVR_UnlockFileByName(int paramInt, String paramString);

    int NET_DVR_PlayBackByName(int paramInt, String paramString, WinDef.HWND paramHWND);

    int NET_DVR_PlayBackByTime(int paramInt1, int paramInt2, NET_DVR_TIME paramNET_DVR_TIME1, NET_DVR_TIME paramNET_DVR_TIME2, WinDef.HWND paramHWND);

    int NET_DVR_PlayBackByTime_V40(int paramInt, NET_DVR_VOD_PARA paramNET_DVR_VOD_PARA);

    boolean NET_DVR_PlayBackControl(int paramInt1, int paramInt2, int paramInt3, IntByReference paramIntByReference);

    boolean NET_DVR_PlayBackControl_V40(int paramInt1, int paramInt2, Pointer paramPointer1, int paramInt3, Pointer paramPointer2, IntByReference paramIntByReference);

    boolean NET_DVR_StopPlayBack(int paramInt);

    boolean NET_DVR_SetPlayDataCallBack(int paramInt1, FPlayDataCallBack paramFPlayDataCallBack, int paramInt2);

    boolean NET_DVR_SetPlayBackESCallBack(int paramInt, FPlayESCallBack paramFPlayESCallBack, Pointer paramPointer);

    boolean NET_DVR_PlayBackSaveData(int paramInt, String paramString);

    boolean NET_DVR_StopPlayBackSave(int paramInt);

    boolean NET_DVR_GetPlayBackOsdTime(int paramInt, NET_DVR_TIME paramNET_DVR_TIME);

    boolean NET_DVR_PlayBackCaptureFile(int paramInt, String paramString);

    int NET_DVR_GetFileByName(int paramInt, String paramString, byte[] paramArrayOfbyte);

    int NET_DVR_GetFileByTime(int paramInt1, int paramInt2, NET_DVR_TIME paramNET_DVR_TIME1, NET_DVR_TIME paramNET_DVR_TIME2, String paramString);

    int NET_DVR_GetFileByTime_V40(int paramInt, String paramString, NET_DVR_PLAYCOND paramNET_DVR_PLAYCOND);

    boolean NET_DVR_StopGetFile(int paramInt);

    int NET_DVR_GetDownloadPos(int paramInt);

    int NET_DVR_GetPlayBackPos(int paramInt);

    int NET_DVR_FindPicture(int paramInt, NET_DVR_FIND_PICTURE_PARAM paramNET_DVR_FIND_PICTURE_PARAM);

    int NET_DVR_FindNextPicture_V50(int paramInt, NET_DVR_FIND_PICTURE_V50 paramNET_DVR_FIND_PICTURE_V50);

    int NET_DVR_FindNextPicture(int paramInt, NET_DVR_FIND_PICTURE paramNET_DVR_FIND_PICTURE);

    boolean NET_DVR_CloseFindPicture(int paramInt);

    boolean NET_DVR_GetPicture_V50(int paramInt, NET_DVR_PIC_PARAM paramNET_DVR_PIC_PARAM);

    boolean NET_DVR_SetDVRMessCallBack_NEW(FMessCallBack_NEW paramFMessCallBack_NEW);

    boolean NET_DVR_SetDVRMessageCallBack(FMessageCallBack paramFMessageCallBack, int paramInt);

    boolean NET_DVR_SetDVRMessageCallBack_V30(FMSGCallBack paramFMSGCallBack, Pointer paramPointer);

    boolean NET_DVR_SetDVRMessageCallBack_V31(FMSGCallBack_V31 paramFMSGCallBack_V31, Pointer paramPointer);

    boolean NET_DVR_SetDVRMessageCallBack_V50(int paramInt, FMSGCallBack_V31 paramFMSGCallBack_V31, Pointer paramPointer);

    boolean NET_DVR_SetConnectTime(int paramInt1, int paramInt2);

    boolean NET_DVR_SetReconnect(int paramInt, boolean paramBoolean);

    int NET_DVR_GetSDKVersion();

    int NET_DVR_GetSDKBuildVersion();

    int NET_DVR_IsSupport();

    boolean NET_DVR_StartListen(String paramString, short paramShort);

    boolean NET_DVR_StopListen();

    int NET_DVR_StartListen_V30(String paramString, short paramShort, FMSGCallBack paramFMSGCallBack, Pointer paramPointer);

    boolean NET_DVR_StopListen_V30(int paramInt);

    int NET_DVR_Login(String paramString1, short paramShort, String paramString2, String paramString3, NET_DVR_DEVICEINFO paramNET_DVR_DEVICEINFO);

    int NET_DVR_Login_V30(String paramString1, short paramShort, String paramString2, String paramString3, NET_DVR_DEVICEINFO_V30 paramNET_DVR_DEVICEINFO_V30);

    int NET_DVR_Login_V40(NET_DVR_USER_LOGIN_INFO paramNET_DVR_USER_LOGIN_INFO, NET_DVR_DEVICEINFO_V40 paramNET_DVR_DEVICEINFO_V40);

    boolean NET_DVR_Logout(int paramInt);

    boolean NET_DVR_Logout_V30(int paramInt);

    int NET_DVR_GetLastError();

    String NET_DVR_GetErrorMsg(IntByReference paramIntByReference);

    boolean NET_DVR_SetShowMode(int paramInt1, int paramInt2);

    boolean NET_DVR_GetDVRIPByResolveSvr(String paramString1, short paramShort1, String paramString2, short paramShort2, String paramString3, short paramShort3, String paramString4);

    boolean NET_DVR_GetDVRIPByResolveSvr_EX(String paramString1, short paramShort1, String paramString2, short paramShort2, String paramString3, short paramShort3, String paramString4, IntByReference paramIntByReference);

    int NET_DVR_RealPlay(int paramInt, NET_DVR_CLIENTINFO paramNET_DVR_CLIENTINFO);

    int NET_DVR_RealPlay_V30(int paramInt, NET_DVR_CLIENTINFO paramNET_DVR_CLIENTINFO, FRealDataCallBack_V30 paramFRealDataCallBack_V30, Pointer paramPointer, boolean paramBoolean);

    int NET_DVR_RealPlay_V40(int paramInt, NET_DVR_PREVIEWINFO paramNET_DVR_PREVIEWINFO, FRealDataCallBack_V30 paramFRealDataCallBack_V30, Pointer paramPointer);

    boolean NET_DVR_StopRealPlay(int paramInt);

    boolean NET_DVR_RigisterDrawFun(int paramInt1, FDrawFun paramFDrawFun, int paramInt2);

    boolean NET_DVR_SetPlayerBufNumber(int paramInt1, int paramInt2);

    boolean NET_DVR_ThrowBFrame(int paramInt1, int paramInt2);

    boolean NET_DVR_SetAudioMode(int paramInt);

    boolean NET_DVR_OpenSound(int paramInt);

    boolean NET_DVR_CloseSound();

    boolean NET_DVR_OpenSoundShare(int paramInt);

    boolean NET_DVR_CloseSoundShare(int paramInt);

    boolean NET_DVR_Volume(int paramInt, short paramShort);

    boolean NET_DVR_SaveRealData(int paramInt, String paramString);

    boolean NET_DVR_StopSaveRealData(int paramInt);

    boolean NET_DVR_SetRealDataCallBack(int paramInt1, FRowDataCallBack paramFRowDataCallBack, int paramInt2);

    boolean NET_DVR_SetStandardDataCallBack(int paramInt1, FStdDataCallBack paramFStdDataCallBack, int paramInt2);

    boolean NET_DVR_CapturePicture(int paramInt, String paramString);

    boolean NET_DVR_MakeKeyFrame(int paramInt1, int paramInt2);

    boolean NET_DVR_MakeKeyFrameSub(int paramInt1, int paramInt2);

    boolean NET_DVR_PTZControl(int paramInt1, int paramInt2, int paramInt3);

    boolean NET_DVR_PTZControl_Other(int paramInt1, int paramInt2, int paramInt3, int paramInt4);

    boolean NET_DVR_TransPTZ(int paramInt1, String paramString, int paramInt2);

    boolean NET_DVR_TransPTZ_Other(int paramInt1, int paramInt2, String paramString, int paramInt3);

    boolean NET_DVR_PTZPreset(int paramInt1, int paramInt2, int paramInt3);

    boolean NET_DVR_PTZPreset_Other(int paramInt1, int paramInt2, int paramInt3, int paramInt4);

    boolean NET_DVR_TransPTZ_EX(int paramInt1, String paramString, int paramInt2);

    boolean NET_DVR_PTZControl_EX(int paramInt1, int paramInt2, int paramInt3);

    boolean NET_DVR_PTZPreset_EX(int paramInt1, int paramInt2, int paramInt3);

    boolean NET_DVR_PTZCruise(int paramInt1, int paramInt2, byte paramByte1, byte paramByte2, short paramShort);

    boolean NET_DVR_PTZCruise_Other(int paramInt1, int paramInt2, int paramInt3, byte paramByte1, byte paramByte2, short paramShort);

    boolean NET_DVR_PTZCruise_EX(int paramInt1, int paramInt2, byte paramByte1, byte paramByte2, short paramShort);

    boolean NET_DVR_PTZTrack(int paramInt1, int paramInt2);

    boolean NET_DVR_PTZTrack_Other(int paramInt1, int paramInt2, int paramInt3);

    boolean NET_DVR_PTZTrack_EX(int paramInt1, int paramInt2);

    boolean NET_DVR_PTZControlWithSpeed(int paramInt1, int paramInt2, int paramInt3, int paramInt4);

    boolean NET_DVR_PTZControlWithSpeed_Other(int paramInt1, int paramInt2, int paramInt3, int paramInt4, int paramInt5);

    boolean NET_DVR_PTZControlWithSpeed_EX(int paramInt1, int paramInt2, int paramInt3, int paramInt4);

    boolean NET_DVR_GetPTZCruise(int paramInt1, int paramInt2, int paramInt3, NET_DVR_CRUISE_RET paramNET_DVR_CRUISE_RET);

    boolean NET_DVR_PTZMltTrack(int paramInt1, int paramInt2, int paramInt3);

    boolean NET_DVR_PTZMltTrack_Other(int paramInt1, int paramInt2, int paramInt3, int paramInt4);

    boolean NET_DVR_PTZMltTrack_EX(int paramInt1, int paramInt2, int paramInt3);

    int NET_DVR_FindFile(int paramInt1, int paramInt2, int paramInt3, NET_DVR_TIME paramNET_DVR_TIME1, NET_DVR_TIME paramNET_DVR_TIME2);

    int NET_DVR_FindNextFile(int paramInt, NET_DVR_FIND_DATA paramNET_DVR_FIND_DATA);

    boolean NET_DVR_FindClose(int paramInt);

    int NET_DVR_FindNextFile_V30(int paramInt, NET_DVR_FINDDATA_V30 paramNET_DVR_FINDDATA_V30);

    int NET_DVR_FindFile_V30(int paramInt, NET_DVR_FILECOND paramNET_DVR_FILECOND);

    int NET_DVR_FindFile_V40(int paramInt, NET_DVR_FILECOND_V40 paramNET_DVR_FILECOND_V40);

    int NET_DVR_FindNextFile_V40(int paramInt, NET_DVR_FINDDATA_V40 paramNET_DVR_FINDDATA_V40);

    int NET_DVR_FindFile_V50(int paramInt, NET_DVR_FILECOND_V50 paramNET_DVR_FILECOND_V50);

    int NET_DVR_FindNextFile_V50(int paramInt, NET_DVR_FINDDATA_V50 paramNET_DVR_FINDDATA_V50);

    boolean NET_DVR_FindClose_V30(int paramInt);

    int NET_DVR_FindFileByEvent(int paramInt, NET_DVR_SEARCH_EVENT_PARAM paramNET_DVR_SEARCH_EVENT_PARAM);

    int NET_DVR_FindNextEvent(int paramInt, NET_DVR_SEARCH_EVENT_RET paramNET_DVR_SEARCH_EVENT_RET);

    int NET_DVR_FindFileByEvent_V50(int paramInt, NET_DVR_SEARCH_EVENT_PARAM_V50 paramNET_DVR_SEARCH_EVENT_PARAM_V50);

    int NET_DVR_FindNextEvent_V50(int paramInt, NET_DVR_SEARCH_EVENT_RET_V50 paramNET_DVR_SEARCH_EVENT_RET_V50);

    int NET_DVR_Upgrade(int paramInt, String paramString);

    int NET_DVR_GetUpgradeState(int paramInt);

    int NET_DVR_GetUpgradeProgress(int paramInt);

    boolean NET_DVR_CloseUpgradeHandle(int paramInt);

    boolean NET_DVR_SetNetworkEnvironment(int paramInt);

    int NET_DVR_FormatDisk(int paramInt1, int paramInt2);

    boolean NET_DVR_GetFormatProgress(int paramInt, IntByReference paramIntByReference1, IntByReference paramIntByReference2, IntByReference paramIntByReference3);

    boolean NET_DVR_CloseFormatHandle(int paramInt);

    int NET_DVR_SetupAlarmChan(int paramInt);

    boolean NET_DVR_CloseAlarmChan(int paramInt);

    int NET_DVR_SetupAlarmChan_V30(int paramInt);

    int NET_DVR_SetupAlarmChan_V41(int paramInt, NET_DVR_SETUPALARM_PARAM paramNET_DVR_SETUPALARM_PARAM);

    int NET_DVR_SetupAlarmChan_V50(int paramInt1, NET_DVR_SETUPALARM_PARAM_V50 paramNET_DVR_SETUPALARM_PARAM_V50, Pointer paramPointer, int paramInt2);

    boolean NET_DVR_CloseAlarmChan_V30(int paramInt);

    int NET_DVR_StartVoiceCom(int paramInt1, FVoiceDataCallBack paramFVoiceDataCallBack, int paramInt2);

    int NET_DVR_StartVoiceCom_V30(int paramInt1, int paramInt2, boolean paramBoolean, FVoiceDataCallBack_V30 paramFVoiceDataCallBack_V30, Pointer paramPointer);

    boolean NET_DVR_SetVoiceComClientVolume(int paramInt, short paramShort);

    boolean NET_DVR_StopVoiceCom(int paramInt);

    int NET_DVR_StartVoiceCom_MR(int paramInt1, FVoiceDataCallBack_MR paramFVoiceDataCallBack_MR, int paramInt2);

    int NET_DVR_StartVoiceCom_MR_V30(int paramInt1, int paramInt2, FVoiceDataCallBack_MR_V30 paramFVoiceDataCallBack_MR_V30, Pointer paramPointer);

    boolean NET_DVR_VoiceComSendData(int paramInt1, byte[] paramArrayOfbyte, int paramInt2);

    boolean NET_DVR_ClientAudioStart();

    boolean NET_DVR_ClientAudioStart_V30(FVoiceDataCallBack2 paramFVoiceDataCallBack2, Pointer paramPointer);

    boolean NET_DVR_ClientAudioStop();

    boolean NET_DVR_AddDVR(int paramInt);

    int NET_DVR_AddDVR_V30(int paramInt1, int paramInt2);

    boolean NET_DVR_DelDVR(int paramInt);

    boolean NET_DVR_DelDVR_V30(int paramInt);

    int NET_DVR_SerialStart(int paramInt1, int paramInt2, FSerialDataCallBack paramFSerialDataCallBack, int paramInt3);

    int NET_DVR_SerialStart_V40(int paramInt1, Pointer paramPointer1, int paramInt2, FSerialDataCallBack_V40 paramFSerialDataCallBack_V40, Pointer paramPointer2);

    boolean NET_DVR_SerialSend(int paramInt1, int paramInt2, byte[] paramArrayOfbyte, int paramInt3);

    boolean NET_DVR_SerialStop(int paramInt);

    boolean NET_DVR_SendTo232Port(int paramInt1, String paramString, int paramInt2);

    boolean NET_DVR_SendToSerialPort(int paramInt1, int paramInt2, int paramInt3, String paramString, int paramInt4);

    Pointer NET_DVR_InitG722Encoder(NET_DVR_AUDIOENC_INFO paramNET_DVR_AUDIOENC_INFO);

    boolean NET_DVR_EncodeG722Frame(Pointer paramPointer, NET_DVR_AUDIOENC_PROCESS_PARAM paramNET_DVR_AUDIOENC_PROCESS_PARAM);

    void NET_DVR_ReleaseG722Encoder(Pointer paramPointer);

    Pointer NET_DVR_InitG722Decoder();

    boolean NET_DVR_DecodeG722Frame(Pointer paramPointer, NET_DVR_AUDIODEC_PROCESS_PARAM paramNET_DVR_AUDIODEC_PROCESS_PARAM);

    void NET_DVR_ReleaseG722Decoder(Pointer paramPointer);

    Pointer NET_DVR_InitG711Encoder(Pointer paramPointer);

    boolean NET_DVR_EncodeG711Frame(Pointer paramPointer, NET_DVR_AUDIOENC_PROCESS_PARAM paramNET_DVR_AUDIOENC_PROCESS_PARAM);

    boolean NET_DVR_ReleaseG711Encoder(Pointer paramPointer);

    Pointer NET_DVR_InitG711Decoder();

    boolean NET_DVR_DecodeG711Frame(Pointer paramPointer, NET_DVR_AUDIODEC_PROCESS_PARAM paramNET_DVR_AUDIODEC_PROCESS_PARAM);

    boolean NET_DVR_ReleaseG711Decoder(Pointer paramPointer);

    boolean NET_DVR_ClickKey(int paramInt1, int paramInt2);

    boolean NET_DVR_StartDVRRecord(int paramInt1, int paramInt2, int paramInt3);

    boolean NET_DVR_StopDVRRecord(int paramInt1, int paramInt2);

    boolean NET_DVR_InitDevice_Card(IntByReference paramIntByReference);

    boolean NET_DVR_ReleaseDevice_Card();

    boolean NET_DVR_InitDDraw_Card(int paramInt1, int paramInt2);

    boolean NET_DVR_ReleaseDDraw_Card();

    int NET_DVR_RealPlay_Card(int paramInt1, NET_DVR_CARDINFO paramNET_DVR_CARDINFO, int paramInt2);

    boolean NET_DVR_ResetPara_Card(int paramInt, NET_DVR_DISPLAY_PARA paramNET_DVR_DISPLAY_PARA);

    boolean NET_DVR_RefreshSurface_Card();

    boolean NET_DVR_ClearSurface_Card();

    boolean NET_DVR_RestoreSurface_Card();

    boolean NET_DVR_OpenSound_Card(int paramInt);

    boolean NET_DVR_CloseSound_Card(int paramInt);

    boolean NET_DVR_SetVolume_Card(int paramInt, short paramShort);

    boolean NET_DVR_AudioPreview_Card(int paramInt, boolean paramBoolean);

    int NET_DVR_GetCardLastError_Card();

    Pointer NET_DVR_GetChanHandle_Card(int paramInt);

    boolean NET_DVR_CapturePicture_Card(int paramInt, String paramString);

    boolean NET_DVR_GetSerialNum_Card(int paramInt, IntByReference paramIntByReference);

    int NET_DVR_FindDVRLog(int paramInt1, int paramInt2, int paramInt3, int paramInt4, NET_DVR_TIME paramNET_DVR_TIME1, NET_DVR_TIME paramNET_DVR_TIME2);

    int NET_DVR_FindNextLog(int paramInt, NET_DVR_LOG paramNET_DVR_LOG);

    boolean NET_DVR_FindLogClose(int paramInt);

    int NET_DVR_FindDVRLog_V30(int paramInt1, int paramInt2, int paramInt3, int paramInt4, NET_DVR_TIME paramNET_DVR_TIME1, NET_DVR_TIME paramNET_DVR_TIME2, boolean paramBoolean);

    int NET_DVR_FindNextLog_V30(int paramInt, NET_DVR_LOG_V30 paramNET_DVR_LOG_V30);

    boolean NET_DVR_FindLogClose_V30(int paramInt);

    int NET_DVR_FindFileByCard(int paramInt1, int paramInt2, int paramInt3, int paramInt4, String paramString, NET_DVR_TIME paramNET_DVR_TIME1, NET_DVR_TIME paramNET_DVR_TIME2);

    boolean NET_DVR_CaptureJPEGPicture(int paramInt1, int paramInt2, NET_DVR_JPEGPARA paramNET_DVR_JPEGPARA, String paramString);

    boolean NET_DVR_CaptureJPEGPicture_NEW(int paramInt1, int paramInt2, NET_DVR_JPEGPARA paramNET_DVR_JPEGPARA, ByteBuffer paramByteBuffer, int paramInt3, IntByReference paramIntByReference);

    boolean NET_DVR_CaptureJPEGPicture_WithAppendData(int paramInt1, int paramInt2, NET_DVR_JPEGPICTURE_WITH_APPENDDATA paramNET_DVR_JPEGPICTURE_WITH_APPENDDATA);

    int NET_DVR_GetRealPlayerIndex(int paramInt);

    int NET_DVR_GetPlayBackPlayerIndex(int paramInt);

    boolean NET_DVR_SetScaleCFG(int paramInt1, int paramInt2);

    boolean NET_DVR_GetScaleCFG(int paramInt, IntByReference paramIntByReference);

    boolean NET_DVR_SetScaleCFG_V30(int paramInt, NET_DVR_SCALECFG paramNET_DVR_SCALECFG);

    boolean NET_DVR_GetScaleCFG_V30(int paramInt, NET_DVR_SCALECFG paramNET_DVR_SCALECFG);

    boolean NET_DVR_SetATMPortCFG(int paramInt, short paramShort);

    boolean NET_DVR_GetATMPortCFG(int paramInt, ShortByReference paramShortByReference);

    boolean NET_DVR_InitDDrawDevice();

    boolean NET_DVR_ReleaseDDrawDevice();

    int NET_DVR_GetDDrawDeviceTotalNums();

    boolean NET_DVR_SetDDrawDevice(int paramInt1, int paramInt2);

    boolean NET_DVR_PTZSelZoomIn(int paramInt, NET_DVR_POINT_FRAME paramNET_DVR_POINT_FRAME);

    boolean NET_DVR_PTZSelZoomIn_EX(int paramInt1, int paramInt2, NET_DVR_POINT_FRAME paramNET_DVR_POINT_FRAME);

    boolean NET_DVR_FocusOnePush(int paramInt1, int paramInt2);

    boolean NET_DVR_StartDecode(int paramInt1, int paramInt2, NET_DVR_DECODERINFO paramNET_DVR_DECODERINFO);

    boolean NET_DVR_StopDecode(int paramInt1, int paramInt2);

    boolean NET_DVR_GetDecoderState(int paramInt1, int paramInt2, NET_DVR_DECODERSTATE paramNET_DVR_DECODERSTATE);

    boolean NET_DVR_SetDecInfo(int paramInt1, int paramInt2, NET_DVR_DECCFG paramNET_DVR_DECCFG);

    boolean NET_DVR_GetDecInfo(int paramInt1, int paramInt2, NET_DVR_DECCFG paramNET_DVR_DECCFG);

    boolean NET_DVR_SetDecTransPort(int paramInt, NET_DVR_PORTCFG paramNET_DVR_PORTCFG);

    boolean NET_DVR_GetDecTransPort(int paramInt, NET_DVR_PORTCFG paramNET_DVR_PORTCFG);

    boolean NET_DVR_DecPlayBackCtrl(int paramInt1, int paramInt2, int paramInt3, int paramInt4, IntByReference paramIntByReference, NET_DVR_PLAYREMOTEFILE paramNET_DVR_PLAYREMOTEFILE);

    boolean NET_DVR_StartDecSpecialCon(int paramInt1, int paramInt2, NET_DVR_DECCHANINFO paramNET_DVR_DECCHANINFO);

    boolean NET_DVR_StopDecSpecialCon(int paramInt1, int paramInt2, NET_DVR_DECCHANINFO paramNET_DVR_DECCHANINFO);

    boolean NET_DVR_DecCtrlDec(int paramInt1, int paramInt2, int paramInt3);

    boolean NET_DVR_DecCtrlScreen(int paramInt1, int paramInt2, int paramInt3);

    boolean NET_DVR_GetDecCurLinkStatus(int paramInt1, int paramInt2, NET_DVR_DECSTATUS paramNET_DVR_DECSTATUS);

    boolean NET_DVR_MatrixStartDynamic(int paramInt1, int paramInt2, NET_DVR_MATRIX_DYNAMIC_DEC paramNET_DVR_MATRIX_DYNAMIC_DEC);

    boolean NET_DVR_MatrixStopDynamic(int paramInt1, int paramInt2);

    boolean NET_DVR_MatrixGetDecChanInfo(int paramInt1, int paramInt2, NET_DVR_MATRIX_DEC_CHAN_INFO paramNET_DVR_MATRIX_DEC_CHAN_INFO);

    boolean NET_DVR_MatrixSetLoopDecChanInfo(int paramInt1, int paramInt2, NET_DVR_MATRIX_LOOP_DECINFO paramNET_DVR_MATRIX_LOOP_DECINFO);

    boolean NET_DVR_MatrixGetLoopDecChanInfo(int paramInt1, int paramInt2, NET_DVR_MATRIX_LOOP_DECINFO paramNET_DVR_MATRIX_LOOP_DECINFO);

    boolean NET_DVR_MatrixSetLoopDecChanEnable(int paramInt1, int paramInt2, int paramInt3);

    boolean NET_DVR_MatrixGetLoopDecChanEnable(int paramInt1, int paramInt2, IntByReference paramIntByReference);

    boolean NET_DVR_MatrixGetLoopDecEnable(int paramInt, IntByReference paramIntByReference);

    boolean NET_DVR_MatrixSetDecChanEnable(int paramInt1, int paramInt2, int paramInt3);

    boolean NET_DVR_MatrixGetDecChanEnable(int paramInt1, int paramInt2, IntByReference paramIntByReference);

    boolean NET_DVR_MatrixGetDecChanStatus(int paramInt1, int paramInt2, NET_DVR_MATRIX_DEC_CHAN_STATUS paramNET_DVR_MATRIX_DEC_CHAN_STATUS);

    boolean NET_DVR_MatrixStartDynamic_V41(int paramInt1, int paramInt2, Pointer paramPointer);

    boolean NET_DVR_MatrixGetLoopDecChanInfo_V41(int paramInt1, int paramInt2, NET_DVR_MATRIX_LOOP_DECINFO_V41 paramNET_DVR_MATRIX_LOOP_DECINFO_V41);

    boolean NET_DVR_MatrixSetLoopDecChanInfo_V41(int paramInt1, int paramInt2, NET_DVR_MATRIX_LOOP_DECINFO_V41 paramNET_DVR_MATRIX_LOOP_DECINFO_V41);

    int NET_DVR_MatrixStartPassiveDecode(int paramInt1, int paramInt2, Pointer paramPointer);

    boolean NET_DVR_MatrixSendData(int paramInt1, Pointer paramPointer, int paramInt2);

    boolean NET_DVR_MatrixStopPassiveDecode(int paramInt);

    boolean NET_DVR_MatrixSetTranInfo(int paramInt, NET_DVR_MATRIX_TRAN_CHAN_CONFIG paramNET_DVR_MATRIX_TRAN_CHAN_CONFIG);

    boolean NET_DVR_MatrixGetTranInfo(int paramInt, NET_DVR_MATRIX_TRAN_CHAN_CONFIG paramNET_DVR_MATRIX_TRAN_CHAN_CONFIG);

    boolean NET_DVR_MatrixSetRemotePlay(int paramInt1, int paramInt2, NET_DVR_MATRIX_DEC_REMOTE_PLAY paramNET_DVR_MATRIX_DEC_REMOTE_PLAY);

    boolean NET_DVR_MatrixSetRemotePlayControl(int paramInt1, int paramInt2, int paramInt3, int paramInt4, IntByReference paramIntByReference);

    boolean NET_DVR_MatrixGetRemotePlayStatus(int paramInt1, int paramInt2, NET_DVR_MATRIX_DEC_REMOTE_PLAY_STATUS paramNET_DVR_MATRIX_DEC_REMOTE_PLAY_STATUS);

    boolean NET_DVR_RefreshPlay(int paramInt);

    boolean NET_DVR_RestoreConfig(int paramInt);

    boolean NET_DVR_SaveConfig(int paramInt);

    boolean NET_DVR_RebootDVR(int paramInt);

    boolean NET_DVR_ShutDownDVR(int paramInt);

    boolean NET_DVR_GetDeviceConfig(int paramInt1, int paramInt2, int paramInt3, Pointer paramPointer1, int paramInt4, Pointer paramPointer2, Pointer paramPointer3, int paramInt5);

    boolean NET_DVR_SetDeviceConfig(int paramInt1, int paramInt2, int paramInt3, Pointer paramPointer1, int paramInt4, Pointer paramPointer2, Pointer paramPointer3, int paramInt5);

    boolean NET_DVR_SetDeviceConfigEx(int paramInt1, int paramInt2, int paramInt3, Pointer paramPointer1, Pointer paramPointer2);

    boolean NET_DVR_GetDVRConfig(int paramInt1, int paramInt2, int paramInt3, Pointer paramPointer, int paramInt4, IntByReference paramIntByReference);

    boolean NET_DVR_SetDVRConfig(int paramInt1, int paramInt2, int paramInt3, Pointer paramPointer, int paramInt4);

    boolean NET_DVR_GetSTDConfig(int paramInt1, int paramInt2, NET_DVR_STD_CONFIG paramNET_DVR_STD_CONFIG);

    boolean NET_DVR_SetSTDConfig(int paramInt1, int paramInt2, NET_DVR_STD_CONFIG paramNET_DVR_STD_CONFIG);

    boolean NET_DVR_GetDVRWorkState_V30(int paramInt, NET_DVR_WORKSTATE_V30 paramNET_DVR_WORKSTATE_V30);

    boolean NET_DVR_GetDVRWorkState(int paramInt, NET_DVR_WORKSTATE paramNET_DVR_WORKSTATE);

    boolean NET_DVR_SetVideoEffect(int paramInt1, int paramInt2, int paramInt3, int paramInt4, int paramInt5, int paramInt6);

    boolean NET_DVR_GetVideoEffect(int paramInt1, int paramInt2, IntByReference paramIntByReference1, IntByReference paramIntByReference2, IntByReference paramIntByReference3, IntByReference paramIntByReference4);

    boolean NET_DVR_ClientGetframeformat(int paramInt, NET_DVR_FRAMEFORMAT paramNET_DVR_FRAMEFORMAT);

    boolean NET_DVR_ClientSetframeformat(int paramInt, NET_DVR_FRAMEFORMAT paramNET_DVR_FRAMEFORMAT);

    boolean NET_DVR_ClientGetframeformat_V30(int paramInt, NET_DVR_FRAMEFORMAT_V30 paramNET_DVR_FRAMEFORMAT_V30);

    boolean NET_DVR_ClientSetframeformat_V30(int paramInt, NET_DVR_FRAMEFORMAT_V30 paramNET_DVR_FRAMEFORMAT_V30);

    boolean NET_DVR_GetAlarmOut_V30(int paramInt, NET_DVR_ALARMOUTSTATUS_V30 paramNET_DVR_ALARMOUTSTATUS_V30);

    boolean NET_DVR_GetAlarmOut(int paramInt, NET_DVR_ALARMOUTSTATUS paramNET_DVR_ALARMOUTSTATUS);

    boolean NET_DVR_SetAlarmOut(int paramInt1, int paramInt2, int paramInt3);

    boolean NET_DVR_ClientSetVideoEffect(int paramInt1, int paramInt2, int paramInt3, int paramInt4, int paramInt5);

    boolean NET_DVR_ClientGetVideoEffect(int paramInt, IntByReference paramIntByReference1, IntByReference paramIntByReference2, IntByReference paramIntByReference3, IntByReference paramIntByReference4);

    boolean NET_DVR_GetConfigFile(int paramInt, String paramString);

    boolean NET_DVR_SetConfigFile(int paramInt, String paramString);

    boolean NET_DVR_GetConfigFile_V30(int paramInt1, String paramString, int paramInt2, IntByReference paramIntByReference);

    boolean NET_DVR_GetConfigFile_EX(int paramInt1, String paramString, int paramInt2);

    boolean NET_DVR_SetConfigFile_EX(int paramInt1, String paramString, int paramInt2);

    boolean NET_DVR_SetLogToFile(int paramInt, String paramString, boolean paramBoolean);

    boolean NET_DVR_GetSDKState(NET_DVR_SDKSTATE paramNET_DVR_SDKSTATE);

    boolean NET_DVR_GetSDKAbility(NET_DVR_SDKABL paramNET_DVR_SDKABL);

    boolean NET_DVR_GetPTZProtocol(int paramInt, NET_DVR_PTZCFG paramNET_DVR_PTZCFG);

    boolean NET_DVR_LockPanel(int paramInt);

    boolean NET_DVR_UnLockPanel(int paramInt);

    boolean NET_DVR_SetRtspConfig(int paramInt1, int paramInt2, NET_DVR_RTSPCFG paramNET_DVR_RTSPCFG, int paramInt3);

    boolean NET_DVR_GetRtspConfig(int paramInt1, int paramInt2, NET_DVR_RTSPCFG paramNET_DVR_RTSPCFG, int paramInt3);

    boolean NET_DVR_ContinuousShoot(int paramInt, NET_DVR_SNAPCFG paramNET_DVR_SNAPCFG);

    boolean NET_DVR_ManualSnap(int paramInt, NET_DVR_MANUALSNAP paramNET_DVR_MANUALSNAP, NET_DVR_PLATE_RESULT paramNET_DVR_PLATE_RESULT);

    int NET_DVR_StartRemoteConfig(int paramInt1, int paramInt2, Pointer paramPointer1, int paramInt3, FRemoteConfigCallBack paramFRemoteConfigCallBack, Pointer paramPointer2);

    boolean NET_DVR_SendRemoteConfig(int paramInt1, int paramInt2, Pointer paramPointer, int paramInt3);

    int NET_DVR_GetNextRemoteConfig(int paramInt1, Pointer paramPointer, int paramInt2);

    int NET_DVR_SendWithRecvRemoteConfig(int paramInt1, Pointer paramPointer1, int paramInt2, Pointer paramPointer2, int paramInt3, IntByReference paramIntByReference);

    boolean NET_DVR_StopRemoteConfig(int paramInt);

    boolean NET_DVR_RemoteControl(int paramInt1, int paramInt2, Pointer paramPointer, int paramInt3);

    boolean NET_DVR_STDXMLConfig(int paramInt, NET_DVR_XML_CONFIG_INPUT paramNET_DVR_XML_CONFIG_INPUT, NET_DVR_XML_CONFIG_OUTPUT paramNET_DVR_XML_CONFIG_OUTPUT);

    boolean NET_DVR_GetSTDAbility(int paramInt1, int paramInt2, NET_DVR_STD_ABILITY paramNET_DVR_STD_ABILITY);

    boolean NET_DVR_GetDeviceAbility(int paramInt1, int paramInt2, Pointer paramPointer1, int paramInt3, Pointer paramPointer2, int paramInt4);

    boolean NET_DVR_ControlGateway(int paramInt1, int paramInt2, int paramInt3);

    boolean NET_DVR_InquestStartCDW_V30(int paramInt, NET_DVR_INQUEST_ROOM paramNET_DVR_INQUEST_ROOM, boolean paramBoolean);

    boolean NET_DVR_InquestStopCDW_V30(int paramInt, NET_DVR_INQUEST_ROOM paramNET_DVR_INQUEST_ROOM, boolean paramBoolean);

    boolean NET_DVR_GetArrayList(int paramInt, NET_DVR_ARRAY_LIST paramNET_DVR_ARRAY_LIST);

    int NET_DVR_InquestResumeEvent(int paramInt, NET_DVR_INQUEST_RESUME_EVENT paramNET_DVR_INQUEST_RESUME_EVENT);

    boolean NET_DVR_InquestGetResumeProgress(int paramInt, IntByReference paramIntByReference);

    boolean NET_DVR_InquestStopResume(int paramInt);

    boolean NET_DVR_GetLocalIP(byte[] paramArrayOfbyte, IntByReference paramIntByReference, boolean paramBoolean);

    boolean NET_DVR_SetValidIP(int paramInt, boolean paramBoolean);

    boolean NET_DVR_AlarmHostAssistantControl(int paramInt1, int paramInt2, int paramInt3, int paramInt4);

    boolean NET_DVR_GetPlanList(int paramInt1, int paramInt2, NET_DVR_PLAN_LIST paramNET_DVR_PLAN_LIST);

    int NET_DVR_UploadFile_V40(int paramInt1, int paramInt2, Pointer paramPointer1, int paramInt3, String paramString, Pointer paramPointer2, int paramInt4);

    int NET_DVR_UploadSend(int paramInt, NET_DVR_SEND_PARAM_IN paramNET_DVR_SEND_PARAM_IN, Pointer paramPointer);

    int NET_DVR_GetUploadState(int paramInt, Pointer paramPointer);

    boolean NET_DVR_GetUploadResult(int paramInt1, Pointer paramPointer, int paramInt2);

    boolean NET_DVR_UploadClose(int paramInt);

    int NET_DVR_StartNetworkFlowTest(int paramInt, NET_DVR_FLOW_TEST_PARAM paramNET_DVR_FLOW_TEST_PARAM, FLOWTESTCALLBACK paramFLOWTESTCALLBACK, Pointer paramPointer);

    boolean NET_DVR_StopNetworkFlowTest(int paramInt);

    boolean NET_DVR_InquiryRecordTimeSpan(int paramInt1, int paramInt2, NET_DVR_RECORD_TIME_SPAN_INQUIRY paramNET_DVR_RECORD_TIME_SPAN_INQUIRY, NET_DVR_RECORD_TIME_SPAN paramNET_DVR_RECORD_TIME_SPAN);

    boolean NET_DVR_StartGetDevState(NET_DVR_CHECK_DEV_STATE paramNET_DVR_CHECK_DEV_STATE);

    int NET_DVR_GetVehicleGpsInfo(int paramInt, NET_DVR_GET_GPS_DATA_PARAM paramNET_DVR_GET_GPS_DATA_PARAM, fGPSDataCallback paramfGPSDataCallback, Pointer paramPointer);

    /////////////////////////////////////////////////////////////////////////
    //校时结构参数
    public static class NET_DVR_TIME extends HIKSDKStructure {
        public int dwYear;

        public int dwMonth;

        public int dwDay;

        public int dwHour;

        public int dwMinute;

        public int dwSecond;

        public String toString() {
            return "NET_DVR_TIME.dwYear: " + this.dwYear + "\n" + "NET_DVR_TIME.dwMonth: \n" + this.dwMonth + "\n" + "NET_DVR_TIME.dwDay: \n" + this.dwDay + "\n" + "NET_DVR_TIME.dwHour: \n" + this.dwHour + "\n" + "NET_DVR_TIME.dwMinute: \n" + this.dwMinute + "\n" + "NET_DVR_TIME.dwSecond: \n" + this.dwSecond;
        }
        //用于列表中显示
        public String toStringTime() {
            return String.format("%02d/%02d/%02d%02d:%02d:%02d", new Object[] { Integer.valueOf(this.dwYear), Integer.valueOf(this.dwMonth), Integer.valueOf(this.dwDay), Integer.valueOf(this.dwHour), Integer.valueOf(this.dwMinute), Integer.valueOf(this.dwSecond) });
        }

        //存储文件名使用
        public String toStringTitle() {
            return String.format("Time%02d%02d%02d%02d%02d%02d", new Object[] { Integer.valueOf(this.dwYear), Integer.valueOf(this.dwMonth), Integer.valueOf(this.dwDay), Integer.valueOf(this.dwHour), Integer.valueOf(this.dwMinute), Integer.valueOf(this.dwSecond) });
        }
    }

    public static class NET_DVR_SCHEDTIME extends HIKSDKStructure {
        public byte byStartHour;

        public byte byStartMin;

        public byte byStopHour;

        public byte byStopMin;
    }

    public static class NET_DVR_HANDLEEXCEPTION_V30 extends HIKSDKStructure {
        public int dwHandleType;

        public byte[] byRelAlarmOut = new byte[96];
    }

    public static class NET_DVR_HANDLEEXCEPTION extends HIKSDKStructure {
        public int dwHandleType;

        public byte[] byRelAlarmOut = new byte[4];
    }

    public static class NET_DVR_DEVICECFG extends HIKSDKStructure {
        public int dwSize;

        public byte[] sDVRName = new byte[32];

        public int dwDVRID;

        public int dwRecycleRecord;

        public byte[] sSerialNumber = new byte[48];

        public int dwSoftwareVersion;

        public int dwSoftwareBuildDate;

        public int dwDSPSoftwareVersion;

        public int dwDSPSoftwareBuildDate;

        public int dwPanelVersion;

        public int dwHardwareVersion;

        public byte byAlarmInPortNum;

        public byte byAlarmOutPortNum;

        public byte byRS232Num;

        public byte byRS485Num;

        public byte byNetworkPortNum;

        public byte byDiskCtrlNum;

        public byte byDiskNum;

        public byte byDVRType;

        public byte byChanNum;

        public byte byStartChan;

        public byte byDecordChans;

        public byte byVGANum;

        public byte byUSBNum;

        public byte byAuxoutNum;

        public byte byAudioNum;

        public byte byIPChanNum;
    }

    public static class NET_DVR_DEVICECFG_V40 extends HIKSDKStructure {
        public int dwSize;

        public byte[] sDVRName = new byte[32];

        public int dwDVRID;

        public int dwRecycleRecord;

        public byte[] sSerialNumber = new byte[48];

        public int dwSoftwareVersion;

        public int dwSoftwareBuildDate;

        public int dwDSPSoftwareVersion;

        public int dwDSPSoftwareBuildDate;

        public int dwPanelVersion;

        public int dwHardwareVersion;

        public byte byAlarmInPortNum;

        public byte byAlarmOutPortNum;

        public byte byRS232Num;

        public byte byRS485Num;

        public byte byNetworkPortNum;

        public byte byDiskCtrlNum;

        public byte byDiskNum;

        public byte byDVRType;

        public byte byChanNum;

        public byte byStartChan;

        public byte byDecordChans;

        public byte byVGANum;

        public byte byUSBNum;

        public byte byAuxoutNum;

        public byte byAudioNum;

        public byte byIPChanNum;

        public byte byZeroChanNum;

        public byte bySupport;

        public byte byEsataUseage;

        public byte byIPCPlug;

        public byte byStorageMode;

        public byte bySupport1;

        public short wDevType;

        public byte[] byDevTypeName = new byte[24];

        public byte bySupport2;

        public byte byAnalogAlarmInPortNum;

        public byte byStartAlarmInNo;

        public byte byStartAlarmOutNo;

        public byte byStartIPAlarmInNo;

        public byte byStartIPAlarmOutNo;

        public byte byHighIPChanNum;

        public byte byEnableRemotePowerOn;

        public short wDevClass;

        public byte[] byRes2 = new byte[6];
    }

    public static class NET_DVR_IPADDR extends HIKSDKStructure {
        public byte[] sIpV4 = new byte[16];

        public byte[] byRes = new byte[128];

        public String toString() {
            return "NET_DVR_IPADDR.sIpV4: " + new String(this.sIpV4) + "\n" + "NET_DVR_IPADDR.byRes: " + new String(this.byRes) + "\n";
        }
    }

    public static class NET_DVR_ETHERNET_V30 extends HIKSDKStructure {
        public NET_DVR_IPADDR struDVRIP;

        public NET_DVR_IPADDR struDVRIPMask;

        public int dwNetInterface;

        public short wDVRPort;

        public short wMTU;

        public byte[] byMACAddr = new byte[6];

        public String toString() {
            return "NET_DVR_ETHERNET_V30.struDVRIP: \n" + this.struDVRIP + "\n" + "NET_DVR_ETHERNET_V30.struDVRIPMask: \n" + this.struDVRIPMask + "\n" + "NET_DVR_ETHERNET_V30.dwNetInterface: " + this.dwNetInterface + "\n" + "NET_DVR_ETHERNET_V30.wDVRPort: " + this.wDVRPort + "\n" + "NET_DVR_ETHERNET_V30.wMTU: " + this.wMTU + "\n" + "NET_DVR_ETHERNET_V30.byMACAddr: " + new String(this.byMACAddr) + "\n";
        }
    }

    public static class NET_DVR_ETHERNET extends HIKSDKStructure {
        public byte[] sDVRIP = new byte[16];

        public byte[] sDVRIPMask = new byte[16];

        public int dwNetInterface;

        public short wDVRPort;

        public byte[] byMACAddr = new byte[6];
    }

    public static class NET_DVR_PPPOECFG extends HIKSDKStructure {
        public int dwPPPoE;

        public byte[] sPPPoEUser = new byte[32];

        public byte[] sPPPoEPassword = new byte[16];

        public NET_DVR_IPADDR struPPPoEIP;
    }

    public static class NET_DVR_NETCFG_V30 extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_ETHERNET_V30[] struEtherNet = new NET_DVR_ETHERNET_V30[2];

        public NET_DVR_IPADDR[] struRes1 = new NET_DVR_IPADDR[2];

        public NET_DVR_IPADDR struAlarmHostIpAddr;

        public short[] wRes2 = new short[2];

        public short wAlarmHostIpPort;

        public byte byUseDhcp;

        public byte byRes3;

        public NET_DVR_IPADDR struDnsServer1IpAddr;

        public NET_DVR_IPADDR struDnsServer2IpAddr;

        public byte[] byIpResolver = new byte[64];

        public short wIpResolverPort;

        public short wHttpPortNo;

        public NET_DVR_IPADDR struMulticastIpAddr;

        public NET_DVR_IPADDR struGatewayIpAddr;

        public NET_DVR_PPPOECFG struPPPoE;

        public byte[] byRes = new byte[64];

        public String toString() {
            return "NET_DVR_NETCFG_V30.dwSize: " + this.dwSize + "\n" + "NET_DVR_NETCFG_V30.struEtherNet[0]: \n" + this.struEtherNet[0] + "\n" + "NET_DVR_NETCFG_V30.struAlarmHostIpAddr: \n" + this.struAlarmHostIpAddr + "\n" + "NET_DVR_NETCFG_V30.wAlarmHostIpPort: " + this.wAlarmHostIpPort + "\n" + "NET_DVR_NETCFG_V30.wHttpPortNo: " + this.wHttpPortNo + "\n" + "NET_DVR_NETCFG_V30.struGatewayIpAddr: \n" + this.struGatewayIpAddr + "\n";
        }
    }

    public static class NET_DVR_NETCFG extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_ETHERNET[] struEtherNet = new NET_DVR_ETHERNET[2];

        public byte[] sManageHostIP = new byte[16];

        public short wManageHostPort;

        public byte[] sIPServerIP = new byte[16];

        public byte[] sMultiCastIP = new byte[16];

        public byte[] sGatewayIP = new byte[16];

        public byte[] sNFSIP = new byte[16];

        public byte[] sNFSDirectory = new byte[128];

        public int dwPPPOE;

        public byte[] sPPPoEUser = new byte[32];

        public byte[] sPPPoEPassword = new byte[16];

        public byte[] sPPPoEIP = new byte[16];
    }

    public static class NET_DVR_SCHEDTIMEWEEK extends HIKSDKStructure {
        public NET_DVR_SCHEDTIME[] struAlarmTime = new NET_DVR_SCHEDTIME[8];
    }

    public static class byte96 extends HIKSDKStructure {
        public byte[] byMotionScope = new byte[96];
    }

    public static class NET_DVR_MOTION_V30 extends HIKSDKStructure {
        public byte96[] byMotionScope = new byte96[64];

        public byte byMotionSensitive;

        public byte byEnableHandleMotion;

        public byte byPrecision;

        public byte reservedData;

        public NET_DVR_HANDLEEXCEPTION_V30 struMotionHandleType;

        public NET_DVR_SCHEDTIMEWEEK[] struAlarmTime = new NET_DVR_SCHEDTIMEWEEK[7];

        public byte[] byRelRecordChan = new byte[64];
    }

    public static class NET_DVR_MOTION extends HIKSDKStructure {
        public byte[] byMotionScope = new byte[396];

        public byte byMotionSensitive;

        public byte byEnableHandleMotion;

        public byte[] reservedData = new byte[2];

        public NET_DVR_HANDLEEXCEPTION strMotionHandleType;

        public byte[] byRelRecordChan = new byte[16];
    }

    public static class NET_DVR_HIDEALARM_V30 extends HIKSDKStructure {
        public int dwEnableHideAlarm;

        public short wHideAlarmAreaTopLeftX;

        public short wHideAlarmAreaTopLeftY;

        public short wHideAlarmAreaWidth;

        public short wHideAlarmAreaHeight;

        public NET_DVR_HANDLEEXCEPTION_V30 strHideAlarmHandleType;

        public NET_DVR_SCHEDTIMEWEEK[] struAlarmTime = new NET_DVR_SCHEDTIMEWEEK[7];
    }

    public static class NET_DVR_HIDEALARM extends HIKSDKStructure {
        public int dwEnableHideAlarm;

        public short wHideAlarmAreaTopLeftX;

        public short wHideAlarmAreaTopLeftY;

        public short wHideAlarmAreaWidth;

        public short wHideAlarmAreaHeight;

        public NET_DVR_HANDLEEXCEPTION strHideAlarmHandleType;
    }

    public static class NET_DVR_VILOST_V30 extends HIKSDKStructure {
        public byte byEnableHandleVILost;

        public NET_DVR_HANDLEEXCEPTION_V30 strVILostHandleType;

        public NET_DVR_SCHEDTIMEWEEK[] struAlarmTime = new NET_DVR_SCHEDTIMEWEEK[7];
    }

    public static class NET_DVR_VILOST extends HIKSDKStructure {
        public byte byEnableHandleVILost;

        public NET_DVR_HANDLEEXCEPTION strVILostHandleType;
    }

    public static class NET_DVR_SHELTER extends HIKSDKStructure {
        public short wHideAreaTopLeftX;

        public short wHideAreaTopLeftY;

        public short wHideAreaWidth;

        public short wHideAreaHeight;
    }

    public static class NET_DVR_COLOR extends HIKSDKStructure {
        public byte byBrightness;

        public byte byContrast;

        public byte bySaturation;

        public byte byHue;
    }

    public static class NET_DVR_VICOLOR extends HIKSDKStructure {
        public NET_DVR_COLOR[] struColor = new NET_DVR_COLOR[8];

        public NET_DVR_SCHEDTIME[] struHandleTime = new NET_DVR_SCHEDTIME[8];
    }

    public static class NET_DVR_VILOST_V40 extends HIKSDKStructure {
        public int dwEnableVILostAlarm;

        public int dwHandleType;

        public int dwMaxRelAlarmOutChanNum;

        public int[] dwRelAlarmOut = new int[4128];

        public NET_DVR_SCHEDTIMEWEEK[] struAlarmTime = new NET_DVR_SCHEDTIMEWEEK[7];

        public byte byVILostAlarmThreshold;

        public byte[] byRes = new byte[63];
    }

    public static class NET_DVR_DNMODE extends HIKSDKStructure {
        public byte byObjectSize;

        public byte byMotionSensitive;

        public byte[] byRes = new byte[6];
    }

    public static class NET_DVR_MOTION_MULTI_AREAPARAM extends HIKSDKStructure {
        public byte byAreaNo;

        public byte[] byRes = new byte[3];

        public NET_VCA_RECT struRect = new NET_VCA_RECT();

        public NET_DVR_DNMODE struDayNightDisable = new NET_DVR_DNMODE();

        public NET_DVR_DNMODE struDayModeParam = new NET_DVR_DNMODE();

        public NET_DVR_DNMODE struNightModeParam = new NET_DVR_DNMODE();

        public byte[] byRes1 = new byte[8];
    }

    public static class NET_DVR_MOTION_MULTI_AREA extends HIKSDKStructure {
        public byte byDayNightCtrl;

        public byte byAllMotionSensitive;

        public byte[] byRes = new byte[2];

        public NET_DVR_SCHEDULE_DAYTIME struScheduleTime = new NET_DVR_SCHEDULE_DAYTIME();

        public NET_DVR_MOTION_MULTI_AREAPARAM[] struMotionMultiAreaParam = new NET_DVR_MOTION_MULTI_AREAPARAM[24];

        public byte[] byRes1 = new byte[60];
    }

    public static class NET_DVR_MOTION_SINGLE_AREA extends HIKSDKStructure {
        public byte[] byMotionScope = new byte[6144];

        public byte byMotionSensitive;

        public byte[] byRes = new byte[3];
    }

    public static class NET_DVR_MOTION_MODE_PARAM extends HIKSDKStructure {
        public NET_DVR_MOTION_SINGLE_AREA struMotionSingleArea = new NET_DVR_MOTION_SINGLE_AREA();

        public NET_DVR_MOTION_MULTI_AREA struMotionMultiArea = new NET_DVR_MOTION_MULTI_AREA();
    }

    public static class NET_DVR_MOTION_V40 extends HIKSDKStructure {
        public NET_DVR_MOTION_MODE_PARAM struMotionMode = new NET_DVR_MOTION_MODE_PARAM();

        public byte byEnableHandleMotion;

        public byte byEnableDisplay;

        public byte byConfigurationMode;

        public byte byKeyingEnable;

        public int dwHandleType;

        public int dwMaxRelAlarmOutChanNum;

        public int[] dwRelAlarmOut = new int[4128];

        public NET_DVR_SCHEDTIMEWEEK[] struAlarmTime = new NET_DVR_SCHEDTIMEWEEK[7];

        public int dwMaxRecordChanNum;

        public int[] dwRelRecordChan = new int[512];

        public byte byDiscardFalseAlarm;

        public byte[] byRes = new byte[127];
    }

    public static class NET_DVR_RGB_COLOR extends HIKSDKStructure {
        public byte byRed;

        public byte byGreen;

        public byte byBlue;

        public byte byRes;
    }

    public static class NET_DVR_HIDEALARM_V40 extends HIKSDKStructure {
        public int dwEnableHideAlarm;

        public short wHideAlarmAreaTopLeftX;

        public short wHideAlarmAreaTopLeftY;

        public short wHideAlarmAreaWidth;

        public short wHideAlarmAreaHeight;

        public int dwHandleType;

        public int dwMaxRelAlarmOutChanNum;

        public int[] dwRelAlarmOut = new int[4128];

        public NET_DVR_SCHEDTIMEWEEK[] struAlarmTime = new NET_DVR_SCHEDTIMEWEEK[7];

        public byte[] byRes = new byte[64];
    }

    public static class NET_DVR_PICCFG_V40 extends HIKSDKStructure {
        public int dwSize;

        public byte[] sChanName = new byte[32];

        public int dwVideoFormat;

        public NET_DVR_VICOLOR struViColor = new NET_DVR_VICOLOR();

        public int dwShowChanName;

        public short wShowNameTopLeftX;

        public short wShowNameTopLeftY;

        public int dwEnableHide;

        public NET_DVR_SHELTER[] struShelter = new NET_DVR_SHELTER[4];

        public int dwShowOsd;

        public short wOSDTopLeftX;

        public short wOSDTopLeftY;

        public byte byOSDType;

        public byte byDispWeek;

        public byte byOSDAttrib;

        public byte byHourOSDType;

        public byte byFontSize;

        public byte byOSDColorType;

        public byte byAlignment;

        public byte byOSDMilliSecondEnable;

        public NET_DVR_VILOST_V40 struVILost = new NET_DVR_VILOST_V40();

        public NET_DVR_VILOST_V40 struAULost = new NET_DVR_VILOST_V40();

        public NET_DVR_MOTION_V40 struMotion = new NET_DVR_MOTION_V40();

        public NET_DVR_HIDEALARM_V40 struHideAlarm = new NET_DVR_HIDEALARM_V40();

        public NET_DVR_RGB_COLOR struOsdColor = new NET_DVR_RGB_COLOR();

        public int dwBoundary;

        public NET_DVR_RGB_COLOR struOsdBkColor = new NET_DVR_RGB_COLOR();

        public byte byOSDBkColorMode;

        public byte byUpDownBoundary;

        public byte byLeftRightBoundary;

        public byte[] byRes = new byte[113];
    }

    public static class NET_DVR_PICCFG_V30 extends HIKSDKStructure {
        public int dwSize;

        public byte[] sChanName = new byte[32];

        public int dwVideoFormat;

        public NET_DVR_VICOLOR struViColor;

        public int dwShowChanName;

        public short wShowNameTopLeftX;

        public short wShowNameTopLeftY;

        public NET_DVR_VILOST_V30 struVILost;

        public NET_DVR_VILOST_V30 struAULost;

        public NET_DVR_MOTION_V30 struMotion;

        public NET_DVR_HIDEALARM_V30 struHideAlarm;

        public int dwEnableHide;

        public NET_DVR_SHELTER[] struShelter = new NET_DVR_SHELTER[4];

        public int dwShowOsd;

        public short wOSDTopLeftX;

        public short wOSDTopLeftY;

        public byte byOSDType;

        public byte byDispWeek;

        public byte byOSDAttrib;

        public byte byHourOSDType;

        public byte[] byRes = new byte[64];
    }

    public static class NET_DVR_PICCFG_EX extends HIKSDKStructure {
        public int dwSize;

        public byte[] sChanName = new byte[32];

        public int dwVideoFormat;

        public byte byBrightness;

        public byte byContrast;

        public byte bySaturation;

        public byte byHue;

        public int dwShowChanName;

        public short wShowNameTopLeftX;

        public short wShowNameTopLeftY;

        public NET_DVR_VILOST struVILost;

        public NET_DVR_MOTION struMotion;

        public NET_DVR_HIDEALARM struHideAlarm;

        public int dwEnableHide;

        public NET_DVR_SHELTER[] struShelter = new NET_DVR_SHELTER[4];

        public int dwShowOsd;

        public short wOSDTopLeftX;

        public short wOSDTopLeftY;

        public byte byOSDType;

        public byte byDispWeek;

        public byte byOSDAttrib;

        public byte byHourOsdType;
    }

    public static class NET_DVR_PICCFG extends HIKSDKStructure {
        public int dwSize;

        public byte[] sChanName = new byte[32];

        public int dwVideoFormat;

        public byte byBrightness;

        public byte byContrast;

        public byte bySaturation;

        public byte byHue;

        public int dwShowChanName;

        public short wShowNameTopLeftX;

        public short wShowNameTopLeftY;

        public NET_DVR_VILOST struVILost;

        public NET_DVR_MOTION struMotion;

        public NET_DVR_HIDEALARM struHideAlarm;

        public int dwEnableHide;

        public short wHideAreaTopLeftX;

        public short wHideAreaTopLeftY;

        public short wHideAreaWidth;

        public short wHideAreaHeight;

        public int dwShowOsd;

        public short wOSDTopLeftX;

        public short wOSDTopLeftY;

        public byte byOSDType;

        byte byDispWeek;

        byte byOSDAttrib;

        public byte reservedData2;
    }

    public static class NET_DVR_MULTI_STREAM_COMPRESSIONCFG_COND extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_STREAM_INFO struStreamInfo = new NET_DVR_STREAM_INFO();

        public int dwStreamType;

        public byte[] byRes = new byte[32];
    }

    public static class NET_DVR_MULTI_STREAM_COMPRESSIONCFG extends HIKSDKStructure {
        public int dwSize;

        public int dwStreamType;

        public NET_DVR_COMPRESSION_INFO_V30 struStreamPara = new NET_DVR_COMPRESSION_INFO_V30();

        public byte[] byRes = new byte[80];
    }

    public static class NET_DVR_COMPRESSION_INFO_V30 extends HIKSDKStructure {
        public byte byStreamType;

        public byte byResolution;

        public byte byBitrateType;

        public byte byPicQuality;

        public int dwVideoBitrate;

        public int dwVideoFrameRate;

        public short wIntervalFrameI;

        public byte byIntervalBPFrame;

        public byte byENumber;

        public byte byVideoEncType;

        public byte byAudioEncType;

        public byte[] byres = new byte[10];
    }

    public static class NET_DVR_COMPRESSIONCFG_V30 extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_COMPRESSION_INFO_V30 struNormHighRecordPara;

        public NET_DVR_COMPRESSION_INFO_V30 struRes;

        public NET_DVR_COMPRESSION_INFO_V30 struEventRecordPara;

        public NET_DVR_COMPRESSION_INFO_V30 struNetPara;
    }

    public static class NET_DVR_COMPRESSION_INFO extends HIKSDKStructure {
        public byte byStreamType;

        public byte byResolution;

        public byte byBitrateType;

        public byte byPicQuality;

        public int dwVideoBitrate;

        public int dwVideoFrameRate;
    }

    public static class NET_DVR_COMPRESSIONCFG extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_COMPRESSION_INFO struRecordPara;

        public NET_DVR_COMPRESSION_INFO struNetPara;
    }

    public static class NET_DVR_COMPRESSION_INFO_EX extends HIKSDKStructure {
        public byte byStreamType;

        public byte byResolution;

        public byte byBitrateType;

        public byte byPicQuality;

        public int dwVideoBitrate;

        public int dwVideoFrameRate;

        public short wIntervalFrameI;

        public byte byIntervalBPFrame;

        public byte byENumber;
    }

    public static class NET_DVR_RECORDSCHED extends HIKSDKStructure {
        public NET_DVR_SCHEDTIME struRecordTime = new NET_DVR_SCHEDTIME();

        public byte byRecordType;

        public byte[] reservedData = new byte[3];
    }

    public static class NET_DVR_RECORDDAY extends HIKSDKStructure {
        public short wAllDayRecord;

        public byte byRecordType;

        public byte reservedData;
    }

    public static class NET_DVR_RECORDSCHEDWEEK extends HIKSDKStructure {
        public NET_DVR_RECORDSCHED[] struRecordSched = new NET_DVR_RECORDSCHED[8];
    }

    public static class NET_DVR_RECORD_V30 extends HIKSDKStructure {
        public int dwSize;

        public int dwRecord;

        public NET_DVR_RECORDDAY[] struRecAllDay = new NET_DVR_RECORDDAY[7];

        public NET_DVR_RECORDSCHEDWEEK[] struRecordSched = new NET_DVR_RECORDSCHEDWEEK[7];

        public int dwRecordTime;

        public int dwPreRecordTime;

        public int dwRecorderDuration;

        public byte byRedundancyRec;

        public byte byAudioRec;

        public byte[] byReserve = new byte[10];
    }

    public static class NET_DVR_RECORD extends HIKSDKStructure {
        public int dwSize;

        public int dwRecord;

        public NET_DVR_RECORDDAY[] struRecAllDay = new NET_DVR_RECORDDAY[7];

        public NET_DVR_RECORDSCHEDWEEK[] struRecordSched = new NET_DVR_RECORDSCHEDWEEK[7];

        public int dwRecordTime;

        public int dwPreRecordTime;
    }

    public static class NET_DVR_STATFRAME extends HIKSDKStructure {
        public int dwRelativeTime;

        public int dwAbsTime;

        public byte[] byRes = new byte[92];
    }

    public static class NET_DVR_STATTIME extends HIKSDKStructure {
        public NET_DVR_TIME tmStart;

        public NET_DVR_TIME tmEnd;

        public byte[] byRes = new byte[92];
    }

    public static class UNION_PDC_STATPARAM extends Union {
        public NET_DVR_STATFRAME struStatFrame;

        public NET_DVR_STATTIME struStatTime;
    }

    public static class NET_DVR_PDC_ALRAM_INFO extends HIKSDKStructure {
        public int dwSize;

        public byte byMode;

        public byte byChannel;

        public byte bySmart;

        public byte byRes1;

        public NET_VCA_DEV_INFO struDevInfo = new NET_VCA_DEV_INFO();

        public UNION_PDC_STATPARAM uStatModeParam = new UNION_PDC_STATPARAM();

        public int dwLeaveNum;

        public int dwEnterNum;

        public byte byBrokenNetHttp;

        public byte byRes3;

        public short wDevInfoIvmsChannelEx;

        public int dwPassingNum;

        public int dwChildLeaveNum;

        public int dwChildEnterNum;

        public int dwDuplicatePeople;

        public int dwXmlLen;

        public Pointer pXmlBuf;

        public byte[] byRes2 = new byte[8];

        public void read() {
            super.read();
            switch (this.byMode) {
                case 0:
                    this.uStatModeParam.setType(NET_DVR_STATFRAME.class);
                    break;
                case 1:
                    this.uStatModeParam.setType(NET_DVR_STATTIME.class);
                    break;
            }
            this.uStatModeParam.read();
        }

        public void write() {
            super.write();
            this.uStatModeParam.write();
        }
    }

    public static class NET_DVR_PTZ_PROTOCOL extends HIKSDKStructure {
        public int dwType;

        public byte[] byDescribe = new byte[16];
    }

    public static class NET_DVR_PTZCFG extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_PTZ_PROTOCOL[] struPtz = new NET_DVR_PTZ_PROTOCOL[200];

        public int dwPtzNum;

        public byte[] byRes = new byte[8];
    }

    public static class NET_DVR_DECODERCFG_V30 extends HIKSDKStructure {
        public int dwSize;

        public int dwBaudRate;

        public byte byDataBit;

        public byte byStopBit;

        public byte byParity;

        public byte byFlowcontrol;

        public short wDecoderType;

        public short wDecoderAddress;

        public byte[] bySetPreset = new byte[256];

        public byte[] bySetCruise = new byte[256];

        public byte[] bySetTrack = new byte[256];
    }

    public static class NET_DVR_DECODERCFG extends HIKSDKStructure {
        public int dwSize;

        public int dwBaudRate;

        public byte byDataBit;

        public byte byStopBit;

        public byte byParity;

        public byte byFlowcontrol;

        public short wDecoderType;

        public short wDecoderAddress;

        public byte[] bySetPreset = new byte[128];

        public byte[] bySetCruise = new byte[128];

        public byte[] bySetTrack = new byte[128];
    }

    public static class NET_DVR_PPPCFG_V30 extends HIKSDKStructure {
        public NET_DVR_IPADDR struRemoteIP;

        public NET_DVR_IPADDR struLocalIP;

        public byte[] sLocalIPMask = new byte[16];

        public byte[] sUsername = new byte[32];

        public byte[] sPassword = new byte[16];

        public byte byPPPMode;

        public byte byRedial;

        public byte byRedialMode;

        public byte byDataEncrypt;

        public int dwMTU;

        public byte[] sTelephoneNumber = new byte[32];
    }

    public static class NET_DVR_PPPCFG extends HIKSDKStructure {
        public byte[] sRemoteIP = new byte[16];

        public byte[] sLocalIP = new byte[16];

        public byte[] sLocalIPMask = new byte[16];

        public byte[] sUsername = new byte[32];

        public byte[] sPassword = new byte[16];

        public byte byPPPMode;

        public byte byRedial;

        public byte byRedialMode;

        public byte byDataEncrypt;

        public int dwMTU;

        public byte[] sTelephoneNumber = new byte[32];
    }

    public static class NET_DVR_SINGLE_RS232 extends HIKSDKStructure {
        public int dwBaudRate;

        public byte byDataBit;

        public byte byStopBit;

        public byte byParity;

        public byte byFlowcontrol;

        public int dwWorkMode;
    }

    public static class NET_DVR_RS232CFG_V30 extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_SINGLE_RS232 struRs232;

        public byte[] byRes = new byte[84];

        public NET_DVR_PPPCFG_V30 struPPPConfig;
    }

    public static class NET_DVR_RS232CFG extends HIKSDKStructure {
        public int dwSize;

        public int dwBaudRate;

        public byte byDataBit;

        public byte byStopBit;

        public byte byParity;

        public byte byFlowcontrol;

        public int dwWorkMode;

        public NET_DVR_PPPCFG struPPPConfig;
    }

    public static class NET_DVR_ALARMINCFG_V30 extends HIKSDKStructure {
        public int dwSize;

        public byte[] sAlarmInName = new byte[32];

        public byte byAlarmType;

        public byte byAlarmInHandle;

        public byte[] reservedData = new byte[2];

        public NET_DVR_HANDLEEXCEPTION_V30 struAlarmHandleType;

        public NET_DVR_SCHEDTIMEWEEK[] struAlarmTime = new NET_DVR_SCHEDTIMEWEEK[7];

        public byte[] byRelRecordChan = new byte[64];

        public byte[] byEnablePreset = new byte[64];

        public byte[] byPresetNo = new byte[64];

        public byte[] byEnablePresetRevert = new byte[64];

        public short[] wPresetRevertDelay = new short[64];

        public byte[] byEnableCruise = new byte[64];

        public byte[] byCruiseNo = new byte[64];

        public byte[] byEnablePtzTrack = new byte[64];

        public byte[] byPTZTrack = new byte[64];

        public byte[] byRes = new byte[16];
    }

    public static class NET_DVR_ALARMINCFG extends HIKSDKStructure {
        public int dwSize;

        public byte[] sAlarmInName = new byte[32];

        public byte byAlarmType;

        public byte byAlarmInHandle;

        public NET_DVR_HANDLEEXCEPTION struAlarmHandleType;

        public NET_DVR_SCHEDTIMEWEEK[] struAlarmTime = new NET_DVR_SCHEDTIMEWEEK[7];

        public byte[] byRelRecordChan = new byte[16];

        public byte[] byEnablePreset = new byte[16];

        public byte[] byPresetNo = new byte[16];

        public byte[] byEnableCruise = new byte[16];

        public byte[] byCruiseNo = new byte[16];

        public byte[] byEnablePtzTrack = new byte[16];

        public byte[] byPTZTrack = new byte[16];
    }

    public static class NET_DVR_ADDIT_POSITION extends HIKSDKStructure {
        public byte[] sDevName = new byte[32];

        public int dwSpeed;

        public int dwLongitude;

        public int dwLatitude;

        public byte[] direction = new byte[2];

        public byte[] res = new byte[2];
    }

    public static class struRecordingHost extends HIKSDKStructure {
        public byte bySubAlarmType;

        public byte[] byRes1 = new byte[3];

        public NET_DVR_TIME_EX struRecordEndTime = new NET_DVR_TIME_EX();
    }

    public static class struAlarmHardDisk extends HIKSDKStructure {
        public int dwAlarmHardDiskNum;
    }

    public static class struAlarmChannel extends HIKSDKStructure {
        public int dwAlarmChanNum;

        public int dwPicLen;

        public byte byPicURL;

        public byte byTarget;

        public byte[] byRes1 = new byte[2];

        public Pointer pDataBuff;
    }

    public static class struIOAlarm extends HIKSDKStructure {
        public int dwAlarmInputNo;

        public int dwTrigerAlarmOutNum;

        public int dwTrigerRecordChanNum;
    }

    public static class NET_DVR_TIME_EX extends HIKSDKStructure {
        public short wYear;

        public byte byMonth;

        public byte byDay;

        public byte byHour;

        public byte byMinute;

        public byte bySecond;

        public byte byRes;
    }

    public static class uStruAlarm extends Union {
        public byte[] byUnionLen = new byte[116];

        public struIOAlarm struioAlarm = new struIOAlarm();

        public struAlarmHardDisk strualarmHardDisk = new struAlarmHardDisk();

        public struAlarmChannel strualarmChannel = new struAlarmChannel();

        public struRecordingHost strurecordingHost = new struRecordingHost();
    }

    public static class NET_DVR_ALRAM_FIXED_HEADER extends HIKSDKStructure {
        public int dwAlarmType;

        public NET_DVR_TIME_EX struAlarmTime = new NET_DVR_TIME_EX();

        public uStruAlarm ustruAlarm = new uStruAlarm();

        public Pointer pRes;

        public byte byTimeDiffFlag;

        public byte cTimeDifferenceH;

        public byte cTimeDifferenceM;

        public byte byRes;

        public short wDevInfoIvmsChannel;

        public byte[] byRes2 = new byte[2];
    }

    public static class NET_DVR_ALARMINFO_V40 extends HIKSDKStructure {
        public NET_DVR_ALRAM_FIXED_HEADER struAlarmFixedHeader = new NET_DVR_ALRAM_FIXED_HEADER();

        public Pointer pAlarmData;
    }

    public static class NET_DVR_ALARMINFO_V30 extends HIKSDKStructure {
        public int dwAlarmType;

        public int dwAlarmInputNumber;

        public byte[] byAlarmOutputNumber = new byte[96];

        public byte[] byAlarmRelateChannel = new byte[64];

        public byte[] byChannel = new byte[64];

        public byte[] byDiskNumber = new byte[33];
    }

    public static class NET_DVR_ALARMINFO extends HIKSDKStructure {
        public int dwAlarmType;

        public int dwAlarmInputNumber;

        public int[] dwAlarmOutputNumber = new int[4];

        public int[] dwAlarmRelateChannel = new int[16];

        public int[] dwChannel = new int[16];

        public int[] dwDiskNumber = new int[16];
    }

    public static class NET_DVR_ALARMINFO_EX extends HIKSDKStructure {
        public int dwAlarmType;

        public int dwAlarmInputNumber;

        public int[] dwAlarmOutputNumber = new int[4];

        public int[] dwAlarmRelateChannel = new int[16];

        public int[] dwChannel = new int[16];

        public int[] dwDiskNumber = new int[16];

        public byte[] sSerialNumber = new byte[48];

        public byte[] sRemoteAlarmIP = new byte[16];
    }

    public static class NET_DVR_IPDEVINFO extends HIKSDKStructure {
        public int dwEnable;

        public byte[] sUserName = new byte[32];

        public byte[] sPassword = new byte[16];

        public NET_DVR_IPADDR struIP = new NET_DVR_IPADDR();

        public short wDVRPort;

        public byte[] byres = new byte[34];
    }

    public static class NET_DVR_IPCHANINFO extends HIKSDKStructure {
        public byte byEnable;

        public byte byIPID;

        public byte byChannel;

        public byte[] byres = new byte[33];
    }

    public static class NET_DVR_IPPARACFG extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_IPDEVINFO[] struIPDevInfo = new NET_DVR_IPDEVINFO[32];

        public byte[] byAnalogChanEnable = new byte[32];

        public NET_DVR_IPCHANINFO[] struIPChanInfo = new NET_DVR_IPCHANINFO[32];
    }

    public static class NET_DVR_IPDEVINFO_V31 extends HIKSDKStructure {
        public byte byEnable;

        public byte byProType;

        public byte byEnableQuickAdd;

        public byte byRes1;

        public byte[] sUserName = new byte[32];

        public byte[] sPassword = new byte[16];

        public byte[] byDomain = new byte[64];

        public NET_DVR_IPADDR struIP = new NET_DVR_IPADDR();

        public short wDVRPort;

        public byte[] szDeviceID = new byte[32];

        public byte[] byRes2 = new byte[2];
    }

    public static class NET_DVR_STREAM_MODE extends HIKSDKStructure {
        public byte byGetStreamType;

        public byte[] byRes = new byte[3];

        public NET_DVR_GET_STREAM_UNION uGetStream = new NET_DVR_GET_STREAM_UNION();

        public void read() {
            super.read();
            switch (this.byGetStreamType) {
                case 0:
                    this.uGetStream.setType(NET_DVR_IPCHANINFO.class);
                    break;
                case 6:
                    this.uGetStream.setType(NET_DVR_IPCHANINFO_V40.class);
                    break;
            }
        }
    }

    public static class NET_DVR_IPSERVER_STREAM extends HIKSDKStructure {
        public byte byEnable;

        public byte[] byRes = new byte[3];

        public NET_DVR_IPADDR struIPServer = new NET_DVR_IPADDR();

        public short wPort;

        public short wDvrNameLen;

        public byte[] byDVRName = new byte[32];

        public short wDVRSerialLen;

        public short[] byRes1 = new short[2];

        public byte[] byDVRSerialNumber = new byte[48];

        public byte[] byUserName = new byte[32];

        public byte[] byPassWord = new byte[16];

        public byte byChannel;

        public byte[] byRes2 = new byte[11];
    }

    public static class NET_DVR_STREAM_MEDIA_SERVER_CFG extends HIKSDKStructure {
        public byte byValid;

        public byte[] byRes1 = new byte[3];

        public NET_DVR_IPADDR struDevIP = new NET_DVR_IPADDR();

        public short wDevPort;

        public byte byTransmitType;

        public byte[] byRes2 = new byte[69];
    }

    public static class NET_DVR_DEV_CHAN_INFO extends HIKSDKStructure {
        public NET_DVR_IPADDR struIP = new NET_DVR_IPADDR();

        public short wDVRPort;

        public byte byChannel;

        public byte byTransProtocol;

        public byte byTransMode;

        public byte byFactoryType;

        public byte byDeviceType;

        public byte byDispChan;

        public byte bySubDispChan;

        public byte byResolution;

        public byte[] byRes = new byte[2];

        public byte[] byDomain = new byte[64];

        public byte[] sUserName = new byte[32];

        public byte[] sPassword = new byte[16];
    }

    public static class NET_DVR_PU_STREAM_CFG extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_STREAM_MEDIA_SERVER_CFG struStreamMediaSvrCfg = new NET_DVR_STREAM_MEDIA_SERVER_CFG();

        public NET_DVR_DEV_CHAN_INFO struDevChanInfo = new NET_DVR_DEV_CHAN_INFO();
    }

    public static class NET_DVR_PU_STREAM_CFG_V41 extends HIKSDKStructure {
        public int dwSize;

        public byte byStreamMode;

        public byte byStreamEncrypt;

        public byte[] byRes1 = new byte[2];

        public NET_DVR_DEC_STREAM_MODE uDecStreamMode;

        public int dwDecDelayTime;

        public byte[] sStreamPassword = new byte[12];

        public byte[] byRes2 = new byte[48];
    }

    public static class NET_DVR_DDNS_STREAM_CFG extends HIKSDKStructure {
        public byte byEnable;

        public byte[] byRes1 = new byte[3];

        public NET_DVR_IPADDR struStreamServer = new NET_DVR_IPADDR();

        public short wStreamServerPort;

        public byte byStreamServerTransmitType;

        public byte byRes2;

        public NET_DVR_IPADDR struIPServer = new NET_DVR_IPADDR();

        public short wIPServerPort;

        public byte[] byRes3 = new byte[2];

        public byte[] sDVRName = new byte[32];

        public short wDVRNameLen;

        public short wDVRSerialLen;

        public byte[] sDVRSerialNumber = new byte[48];

        public byte[] sUserName = new byte[32];

        public byte[] sPassWord = new byte[16];

        public short wDVRPort;

        public byte[] byRes4 = new byte[2];

        public byte byChannel;

        public byte byTransProtocol;

        public byte byTransMode;

        public byte byFactoryType;
    }

    public static class NET_DVR_PU_STREAM_URL extends HIKSDKStructure {
        public byte byEnable;

        public byte[] strURL = new byte[240];

        public byte byTransPortocol;

        public short wIPID;

        public byte byChannel;

        public byte[] byRes = new byte[7];
    }

    public static class NET_DVR_HKDDNS_STREAM extends HIKSDKStructure {
        public byte byEnable;

        public byte[] byRes = new byte[3];

        public byte[] byDDNSDomain = new byte[64];

        public short wPort;

        public short wAliasLen;

        public byte[] byAlias = new byte[32];

        public short wDVRSerialLen;

        public byte[] byRes1 = new byte[2];

        public byte[] byDVRSerialNumber = new byte[48];

        public byte[] byUserName = new byte[32];

        public byte[] byPassWord = new byte[16];

        public byte byChannel;

        public byte[] byRes2 = new byte[11];
    }

    public static class NET_DVR_IPCHANINFO_V40 extends HIKSDKStructure {
        public byte byEnable;

        public byte byRes1;

        public short wIPID;

        public int dwChannel;

        public byte byTransProtocol;

        public byte byTransMode;

        public byte byFactoryType;

        public byte[] byRes = new byte[241];
    }

    public static class NET_DVR_GET_STREAM_UNION extends Union {
        public NET_DVR_IPCHANINFO struChanInfo = new NET_DVR_IPCHANINFO();

        public NET_DVR_IPCHANINFO_V40 struIPChan = new NET_DVR_IPCHANINFO_V40();

        public byte[] byUnionLen = new byte[492];
    }

    public static class NET_DVR_IPPARACFG_V40 extends HIKSDKStructure {
        public int dwSize;

        public int dwGroupNum;

        public int dwAChanNum;

        public int dwDChanNum;

        public int dwStartDChan;

        public byte[] byAnalogChanEnable = new byte[64];

        public NET_DVR_IPDEVINFO_V31[] struIPDevInfo = new NET_DVR_IPDEVINFO_V31[64];

        public NET_DVR_STREAM_MODE[] struStreamMode = new NET_DVR_STREAM_MODE[64];

        public byte[] byRes2 = new byte[20];
    }

    public static class NET_DVR_IPALARMOUTINFO extends HIKSDKStructure {
        public byte byIPID;

        public byte byAlarmOut;

        public byte[] byRes = new byte[18];
    }

    public static class NET_DVR_IPALARMOUTCFG extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_IPALARMOUTINFO[] struIPAlarmOutInfo = new NET_DVR_IPALARMOUTINFO[64];
    }

    public static class NET_DVR_IPALARMININFO extends HIKSDKStructure {
        public byte byIPID;

        public byte byAlarmIn;

        public byte[] byRes = new byte[18];
    }

    public static class NET_DVR_IPALARMINCFG extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_IPALARMININFO[] struIPAlarmInInfo = new NET_DVR_IPALARMININFO[128];
    }

    public static class NET_DVR_IPALARMINFO extends HIKSDKStructure {
        public NET_DVR_IPDEVINFO[] struIPDevInfo = new NET_DVR_IPDEVINFO[32];

        public byte[] byAnalogChanEnable = new byte[32];

        public NET_DVR_IPCHANINFO[] struIPChanInfo = new NET_DVR_IPCHANINFO[32];

        public NET_DVR_IPALARMININFO[] struIPAlarmInInfo = new NET_DVR_IPALARMININFO[128];

        public NET_DVR_IPALARMOUTINFO[] struIPAlarmOutInfo = new NET_DVR_IPALARMOUTINFO[64];
    }

    public static class NET_DVR_SINGLE_HD extends HIKSDKStructure {
        public int dwHDNo;

        public int dwCapacity;

        public int dwFreeSpace;

        public int dwHdStatus;

        public byte byHDAttr;

        public byte[] byRes1 = new byte[3];

        public int dwHdGroup;

        public byte[] byRes2 = new byte[120];
    }

    public static class NET_DVR_HDCFG extends HIKSDKStructure {
        public int dwSize;

        public int dwHDCount;

        public NET_DVR_SINGLE_HD[] struHDInfo = new NET_DVR_SINGLE_HD[33];
    }

    public static class NET_DVR_SINGLE_HDGROUP extends HIKSDKStructure {
        public int dwHDGroupNo;

        public byte[] byHDGroupChans = new byte[64];

        public byte[] byRes = new byte[8];
    }

    public static class NET_DVR_HDGROUP_CFG extends HIKSDKStructure {
        public int dwSize;

        public int dwHDGroupCount;

        public NET_DVR_SINGLE_HDGROUP[] struHDGroupAttr = new NET_DVR_SINGLE_HDGROUP[16];
    }

    public static class NET_DVR_SCALECFG extends HIKSDKStructure {
        public int dwSize;

        public int dwMajorScale;

        public int dwMinorScale;

        public int[] dwRes = new int[2];
    }

    public static class NET_DVR_ALARMOUTCFG_V30 extends HIKSDKStructure {
        public int dwSize;

        public byte[] sAlarmOutName = new byte[32];

        public int dwAlarmOutDelay;

        public NET_DVR_SCHEDTIMEWEEK[] struAlarmOutTime = new NET_DVR_SCHEDTIMEWEEK[7];

        public byte[] byRes = new byte[16];
    }

    public static class NET_DVR_ALARMOUTCFG extends HIKSDKStructure {
        public int dwSize;

        public byte[] sAlarmOutName = new byte[32];

        public int dwAlarmOutDelay;

        public NET_DVR_SCHEDTIMEWEEK[] struAlarmOutTime = new NET_DVR_SCHEDTIMEWEEK[7];
    }

    public static class NET_DVR_PREVIEWCFG_V30 extends HIKSDKStructure {
        public int dwSize;

        public byte byPreviewNumber;

        public byte byEnableAudio;

        public short wSwitchTime;

        public byte[][] bySwitchSeq = new byte[8][32];

        public byte[] byRes = new byte[24];
    }

    public static class NET_DVR_PREVIEWCFG extends HIKSDKStructure {
        public int dwSize;

        public byte byPreviewNumber;

        public byte byEnableAudio;

        public short wSwitchTime;

        public byte[] bySwitchSeq = new byte[16];
    }

    public static class NET_DVR_VGAPARA extends HIKSDKStructure {
        public short wResolution;

        public short wFreq;

        public int dwBrightness;
    }

    public static class NET_DVR_MATRIXPARA_V30 extends HIKSDKStructure {
        public short[] wOrder = new short[32];

        public short wSwitchTime;

        public byte[] res = new byte[14];
    }

    public static class NET_DVR_MATRIXPARA extends HIKSDKStructure {
        public short wDisplayLogo;

        public short wDisplayOsd;
    }

    public static class NET_DVR_VOOUT extends HIKSDKStructure {
        public byte byVideoFormat;

        public byte byMenuAlphaValue;

        public short wScreenSaveTime;

        public short wVOffset;

        public short wBrightness;

        public byte byStartMode;

        public byte byEnableScaler;
    }

    public static class NET_DVR_VIDEOOUT_V30 extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_VOOUT[] struVOOut = new NET_DVR_VOOUT[4];

        public NET_DVR_VGAPARA[] struVGAPara = new NET_DVR_VGAPARA[4];

        public NET_DVR_MATRIXPARA_V30[] struMatrixPara = new NET_DVR_MATRIXPARA_V30[16];

        public byte[] byRes = new byte[16];
    }

    public static class NET_DVR_VIDEOOUT extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_VOOUT[] struVOOut = new NET_DVR_VOOUT[2];

        public NET_DVR_VGAPARA[] struVGAPara = new NET_DVR_VGAPARA[1];

        public NET_DVR_MATRIXPARA struMatrixPara;
    }

    public static class NET_DVR_USER_INFO_V30 extends HIKSDKStructure {
        public byte[] sUserName = new byte[32];

        public byte[] sPassword = new byte[16];

        public byte[] byLocalRight = new byte[32];

        public byte[] byRemoteRight = new byte[32];

        public byte[] byNetPreviewRight = new byte[64];

        public byte[] byLocalPlaybackRight = new byte[64];

        public byte[] byNetPlaybackRight = new byte[64];

        public byte[] byLocalRecordRight = new byte[64];

        public byte[] byNetRecordRight = new byte[64];

        public byte[] byLocalPTZRight = new byte[64];

        public byte[] byNetPTZRight = new byte[64];

        public byte[] byLocalBackupRight = new byte[64];

        public NET_DVR_IPADDR struUserIP;

        public byte[] byMACAddr = new byte[6];

        public byte byPriority;

        public byte[] byRes = new byte[17];
    }

    public static class NET_DVR_USER_INFO_EX extends HIKSDKStructure {
        public byte[] sUserName = new byte[32];

        public byte[] sPassword = new byte[16];

        public int[] dwLocalRight = new int[32];

        public int dwLocalPlaybackRight;

        public int[] dwRemoteRight = new int[32];

        public int dwNetPreviewRight;

        public int dwNetPlaybackRight;

        public byte[] sUserIP = new byte[16];

        public byte[] byMACAddr = new byte[6];
    }

    public static class NET_DVR_USER_INFO extends HIKSDKStructure {
        public byte[] sUserName = new byte[32];

        public byte[] sPassword = new byte[16];

        public int[] dwLocalRight = new int[32];

        public int[] dwRemoteRight = new int[32];

        public byte[] sUserIP = new byte[16];

        public byte[] byMACAddr = new byte[6];
    }

    public static class NET_DVR_USER_V30 extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_USER_INFO_V30[] struUser = new NET_DVR_USER_INFO_V30[32];
    }

    public static class NET_DVR_USER_EX extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_USER_INFO_EX[] struUser = new NET_DVR_USER_INFO_EX[16];
    }

    public static class NET_DVR_USER extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_USER_INFO[] struUser = new NET_DVR_USER_INFO[16];
    }

    public static class NET_DVR_EXCEPTION_V30 extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_HANDLEEXCEPTION_V30[] struExceptionHandleType = new NET_DVR_HANDLEEXCEPTION_V30[32];
    }

    public static class NET_DVR_EXCEPTION extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_HANDLEEXCEPTION[] struExceptionHandleType = new NET_DVR_HANDLEEXCEPTION[16];
    }

    public static class NET_DVR_CHANNELSTATE_V30 extends HIKSDKStructure {
        public byte byRecordStatic;

        public byte bySignalStatic;

        public byte byHardwareStatic;

        public byte byRes1;

        public int dwBitRate;

        public int dwLinkNum;

        public NET_DVR_IPADDR[] struClientIP = new NET_DVR_IPADDR[6];

        public int dwIPLinkNum;

        public byte byExceedMaxLink;

        public byte[] byRes = new byte[3];

        public int dwAllBitRate;

        public int dwChannelNo;
    }

    public static class NET_DVR_CHANNELSTATE extends HIKSDKStructure {
        public byte byRecordStatic;

        public byte bySignalStatic;

        public byte byHardwareStatic;

        public byte reservedData;

        public int dwBitRate;

        public int dwLinkNum;

        public int[] dwClientIP = new int[6];
    }

    public static class NET_DVR_DISKSTATE extends HIKSDKStructure {
        public int dwVolume;

        public int dwFreeSpace;

        public int dwHardDiskStatic;
    }

    public static class NET_DVR_WORKSTATE_V30 extends HIKSDKStructure {
        public int dwDeviceStatic;

        public NET_DVR_DISKSTATE[] struHardDiskStatic = new NET_DVR_DISKSTATE[33];

        public NET_DVR_CHANNELSTATE_V30[] struChanStatic = new NET_DVR_CHANNELSTATE_V30[64];

        public byte[] byAlarmInStatic = new byte[160];

        public byte[] byAlarmOutStatic = new byte[96];

        public int dwLocalDisplay;

        public byte[] byAudioChanStatus = new byte[2];

        public byte[] byRes = new byte[10];
    }

    public static class NET_DVR_WORKSTATE extends HIKSDKStructure {
        public int dwDeviceStatic;

        public NET_DVR_DISKSTATE[] struHardDiskStatic = new NET_DVR_DISKSTATE[16];

        public NET_DVR_CHANNELSTATE[] struChanStatic = new NET_DVR_CHANNELSTATE[16];

        public byte[] byAlarmInStatic = new byte[16];

        public byte[] byAlarmOutStatic = new byte[4];

        public int dwLocalDisplay;
    }

    public static class NET_DVR_LOG_V30 extends HIKSDKStructure {
        public NET_DVR_TIME strLogTime;

        public int dwMajorType;

        public int dwMinorType;

        public byte[] sPanelUser = new byte[16];

        public byte[] sNetUser = new byte[16];

        public NET_DVR_IPADDR struRemoteHostAddr;

        public int dwParaType;

        public int dwChannel;

        public int dwDiskNumber;

        public int dwAlarmInPort;

        public int dwAlarmOutPort;

        public int dwInfoLen;

        public byte[] sInfo = new byte[11840];
    }

    public static class NET_DVR_LOG extends HIKSDKStructure {
        public NET_DVR_TIME strLogTime;

        public int dwMajorType;

        public int dwMinorType;

        public byte[] sPanelUser = new byte[16];

        public byte[] sNetUser = new byte[16];

        public byte[] sRemoteHostAddr = new byte[16];

        public int dwParaType;

        public int dwChannel;

        public int dwDiskNumber;

        public int dwAlarmInPort;

        public int dwAlarmOutPort;
    }

    public static class NET_DVR_ALARMOUTSTATUS_V30 extends HIKSDKStructure {
        public byte[] Output = new byte[96];
    }

    public static class NET_DVR_ALARMOUTSTATUS extends HIKSDKStructure {
        public byte[] Output = new byte[4];
    }

    public static class NET_DVR_TRADEINFO extends HIKSDKStructure {
        public short m_Year;

        public short m_Month;

        public short m_Day;

        public short m_Hour;

        public short m_Minute;

        public short m_Second;

        public byte[] DeviceName = new byte[24];

        public int dwChannelNumer;

        public byte[] CardNumber = new byte[32];

        public byte[] cTradeType = new byte[12];

        public int dwCash;
    }

    public static class NET_DVR_FRAMETYPECODE extends HIKSDKStructure {
        public byte[] code = new byte[12];
    }

    public static class NET_DVR_FRAMEFORMAT_V30 extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_IPADDR struATMIP;

        public int dwATMType;

        public int dwInputMode;

        public int dwFrameSignBeginPos;

        public int dwFrameSignLength;

        public byte[] byFrameSignContent = new byte[12];

        public int dwCardLengthInfoBeginPos;

        public int dwCardLengthInfoLength;

        public int dwCardNumberInfoBeginPos;

        public int dwCardNumberInfoLength;

        public int dwBusinessTypeBeginPos;

        public int dwBusinessTypeLength;

        public NET_DVR_FRAMETYPECODE[] frameTypeCode = new NET_DVR_FRAMETYPECODE[10];

        public short wATMPort;

        public short wProtocolType;

        public byte[] byRes = new byte[24];
    }

    public static class NET_DVR_FRAMEFORMAT extends HIKSDKStructure {
        public int dwSize;

        public byte[] sATMIP = new byte[16];

        public int dwATMType;

        public int dwInputMode;

        public int dwFrameSignBeginPos;

        public int dwFrameSignLength;

        public byte[] byFrameSignContent = new byte[12];

        public int dwCardLengthInfoBeginPos;

        public int dwCardLengthInfoLength;

        public int dwCardNumberInfoBeginPos;

        public int dwCardNumberInfoLength;

        public int dwBusinessTypeBeginPos;

        public int dwBusinessTypeLength;

        public NET_DVR_FRAMETYPECODE[] frameTypeCode = new NET_DVR_FRAMETYPECODE[10];
    }

    public static class NET_DVR_FTPTYPECODE extends HIKSDKStructure {
        public byte[] sFtpType = new byte[32];

        public byte[] sFtpCode = new byte[8];
    }

    public static class NET_DVR_FRAMEFORMAT_EX extends HIKSDKStructure {
        public int dwSize;

        public byte[] sATMIP = new byte[16];

        public int dwATMType;

        public int dwInputMode;

        public int dwFrameSignBeginPos;

        public int dwFrameSignLength;

        public byte[] byFrameSignContent = new byte[12];

        public int dwCardLengthInfoBeginPos;

        public int dwCardLengthInfoLength;

        public int dwCardNumberInfoBeginPos;

        public int dwCardNumberInfoLength;

        public int dwBusinessTypeBeginPos;

        public int dwBusinessTypeLength;

        public NET_DVR_FRAMETYPECODE[] frameTypeCode = new NET_DVR_FRAMETYPECODE[10];

        public byte[] sFTPIP = new byte[16];

        public byte[] byFtpUsername = new byte[32];

        public byte[] byFtpPasswd = new byte[16];

        public byte[] sDirName = new byte[32];

        public int dwATMSrvType;

        public int dwTimeSpace;

        public NET_DVR_FTPTYPECODE[] sFtpTypeCodeOp = new NET_DVR_FTPTYPECODE[300];

        public int dwADPlay;

        public int dwNewPort;
    }

    public static class NET_DVR_DECODERINFO extends HIKSDKStructure {
        public byte[] byEncoderIP = new byte[16];

        public byte[] byEncoderUser = new byte[16];

        public byte[] byEncoderPasswd = new byte[16];

        public byte bySendMode;

        public byte byEncoderChannel;

        public short wEncoderPort;

        public byte[] reservedData = new byte[4];
    }

    public static class NET_DVR_DECODERSTATE extends HIKSDKStructure {
        public byte[] byEncoderIP = new byte[16];

        public byte[] byEncoderUser = new byte[16];

        public byte[] byEncoderPasswd = new byte[16];

        public byte byEncoderChannel;

        public byte bySendMode;

        public short wEncoderPort;

        public int dwConnectState;

        public byte[] reservedData = new byte[4];
    }

    public static class NET_DVR_DECCHANINFO extends HIKSDKStructure {
        public byte[] sDVRIP = new byte[16];

        public short wDVRPort;

        public byte[] sUserName = new byte[32];

        public byte[] sPassword = new byte[16];

        public byte byChannel;

        public byte byLinkMode;

        public byte byLinkType;
    }

    public static class NET_DVR_DECINFO extends HIKSDKStructure {
        public byte byPoolChans;

        public NET_DVR_DECCHANINFO[] struchanConInfo = new NET_DVR_DECCHANINFO[4];

        public byte byEnablePoll;

        public byte byPoolTime;
    }

    public static class NET_DVR_DECCFG extends HIKSDKStructure {
        public int dwSize;

        public int dwDecChanNum;

        public NET_DVR_DECINFO[] struDecInfo = new NET_DVR_DECINFO[4];
    }

    public static class NET_DVR_PORTINFO extends HIKSDKStructure {
        public int dwEnableTransPort;

        public byte[] sDecoderIP = new byte[16];

        public short wDecoderPort;

        public short wDVRTransPort;

        public byte[] cReserve = new byte[4];
    }

    public static class NET_DVR_PORTCFG extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_PORTINFO[] struTransPortInfo = new NET_DVR_PORTINFO[2];
    }

    public static class NET_DVR_PLAYREMOTEFILE extends HIKSDKStructure {
        public int dwSize;

        public byte[] sDecoderIP = new byte[16];

        public short wDecoderPort;

        public short wLoadMode;

        public byte[] byFile = new byte[100];

        public static class mode_size extends Union {
            public byte[] byFile = new byte[100];

            public static class bytime extends HIKSDKStructure {
                public int dwChannel;

                public byte[] sUserName = new byte[32];

                public byte[] sPassword = new byte[16];

                public NET_DVR_TIME struStartTime;

                public NET_DVR_TIME struStopTime;
            }
        }
    }

    public static class NET_DVR_DECCHANSTATUS extends HIKSDKStructure {
        public int dwWorkType;

        public byte[] sDVRIP = new byte[16];

        public short wDVRPort;

        public byte byChannel;

        public byte byLinkMode;

        public int dwLinkType;

        public byte[] sUserName = new byte[32];

        public byte[] sPassword = new byte[16];

        public byte[] cReserve = new byte[52];

        public static class objectInfo extends Union {
            public static class userInfo extends HIKSDKStructure {
                public byte[] sUserName = new byte[32];

                public byte[] sPassword = new byte[16];

                public byte[] cReserve = new byte[52];
            }

            public static class fileInfo extends HIKSDKStructure {
                public byte[] fileName = new byte[100];
            }

            public static class timeInfo extends HIKSDKStructure {
                public int dwChannel;

                public byte[] sUserName = new byte[32];

                public byte[] sPassword = new byte[16];

                public NET_DVR_TIME struStartTime;

                public NET_DVR_TIME struStopTime;
            }
        }
    }

    public static class NET_DVR_DECSTATUS extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_DECCHANSTATUS[] struDecState = new NET_DVR_DECCHANSTATUS[4];
    }

    public static class NET_DVR_SHOWSTRINGINFO extends HIKSDKStructure {
        public short wShowString;

        public short wStringSize;

        public short wShowStringTopLeftX;

        public short wShowStringTopLeftY;

        public byte[] sString = new byte[44];
    }

    public static class NET_DVR_SHOWSTRING_V30 extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_SHOWSTRINGINFO[] struStringInfo = new NET_DVR_SHOWSTRINGINFO[8];
    }

    public static class NET_DVR_SHOWSTRING_EX extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_SHOWSTRINGINFO[] struStringInfo = new NET_DVR_SHOWSTRINGINFO[8];
    }

    public static class NET_DVR_SHOWSTRING extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_SHOWSTRINGINFO[] struStringInfo = new NET_DVR_SHOWSTRINGINFO[4];
    }

    public static class NET_DVR_SENDER extends HIKSDKStructure {
        public byte[] sName = new byte[32];

        public byte[] sAddress = new byte[48];
    }

    public static class NET_DVRRECEIVER extends HIKSDKStructure {
        public byte[] sName = new byte[32];

        public byte[] sAddress = new byte[48];
    }

    public static class NET_DVR_EMAILCFG_V30 extends HIKSDKStructure {
        public int dwSize;

        public byte[] sAccount = new byte[32];

        public byte[] sPassword = new byte[32];

        public NET_DVR_SENDER struSender;

        public byte[] sSmtpServer = new byte[48];

        public byte[] sPop3Server = new byte[48];

        public NET_DVRRECEIVER[] struReceiver = new NET_DVRRECEIVER[3];

        public byte byAttachment;

        public byte bySmtpServerVerify;

        public byte byMailInterval;

        public byte[] res = new byte[77];
    }

    public static class NET_DVR_CRUISE_PARA extends HIKSDKStructure {
        public int dwSize;

        public byte[] byPresetNo = new byte[32];

        public byte[] byCruiseSpeed = new byte[32];

        public short[] wDwellTime = new short[32];

        public byte[] byEnableThisCruise;

        public byte[] res = new byte[15];
    }

    public static class NET_DVR_TIMEPOINT extends HIKSDKStructure {
        public int dwMonth;

        public int dwWeekNo;

        public int dwWeekDate;

        public int dwHour;

        public int dwMin;
    }

    public static class NET_DVR_ZONEANDDST extends HIKSDKStructure {
        public int dwSize;

        public byte[] byRes1 = new byte[16];

        public int dwEnableDST;

        public byte byDSTBias;

        public byte[] byRes2 = new byte[3];

        public NET_DVR_TIMEPOINT struBeginPoint;

        public NET_DVR_TIMEPOINT struEndPoint;
    }

    public static class NET_DVR_JPEGPARA extends HIKSDKStructure {
        public short wPicSize;

        public short wPicQuality;
    }

    public static class NET_DVR_AUXOUTCFG extends HIKSDKStructure {
        public int dwSize;

        public int dwAlarmOutChan;

        public int dwAlarmChanSwitchTime;

        public int[] dwAuxSwitchTime = new int[4];

        public byte[][] byAuxOrder = new byte[4][16];
    }

    public static class NET_DVR_NTPPARA extends HIKSDKStructure {
        public byte[] sNTPServer = new byte[64];

        public short wInterval;

        public byte byEnableNTP;

        public byte cTimeDifferenceH;

        public byte cTimeDifferenceM;

        public byte res1;

        public short wNtpPort;

        public byte[] res2 = new byte[8];
    }

    public static class NET_DVR_DDNSPARA extends HIKSDKStructure {
        public byte[] sUsername = new byte[32];

        public byte[] sPassword = new byte[16];

        public byte[] sDomainName = new byte[64];

        public byte byEnableDDNS;

        public byte[] res = new byte[15];
    }

    public static class NET_DVR_DDNSPARA_EX extends HIKSDKStructure {
        public byte byHostIndex;

        public byte byEnableDDNS;

        public short wDDNSPort;

        public byte[] sUsername = new byte[32];

        public byte[] sPassword = new byte[16];

        public byte[] sDomainName = new byte[64];

        public byte[] sServerName = new byte[64];

        public byte[] byRes = new byte[16];
    }

    public static class NET_DVR_DDNS extends HIKSDKStructure {
        public byte[] sUsername = new byte[32];

        public byte[] sPassword = new byte[16];

        public byte[] sDomainName = new byte[64];

        public byte[] sServerName = new byte[64];

        public short wDDNSPort;

        public byte[] byRes = new byte[10];
    }

    public static class NET_DVR_DDNSPARA_V30 extends HIKSDKStructure {
        public byte byEnableDDNS;

        public byte byHostIndex;

        public byte[] byRes1 = new byte[2];

        public NET_DVR_DDNS[] struDDNS = new NET_DVR_DDNS[10];

        public byte[] byRes2 = new byte[16];
    }

    public static class NET_DVR_EMAILPARA extends HIKSDKStructure {
        public byte[] sUsername = new byte[64];

        public byte[] sPassword = new byte[64];

        public byte[] sSmtpServer = new byte[64];

        public byte[] sPop3Server = new byte[64];

        public byte[] sMailAddr = new byte[64];

        public byte[] sEventMailAddr1 = new byte[64];

        public byte[] sEventMailAddr2 = new byte[64];

        public byte[] res = new byte[16];
    }

    public static class NET_DVR_NETAPPCFG extends HIKSDKStructure {
        public int dwSize;

        public byte[] sDNSIp = new byte[16];

        public NET_DVR_NTPPARA struNtpClientParam;

        public NET_DVR_DDNSPARA struDDNSClientParam;

        public byte[] res = new byte[464];
    }

    public static class NET_DVR_SINGLE_NFS extends HIKSDKStructure {
        public byte[] sNfsHostIPAddr = new byte[16];

        public byte[] sNfsDirectory = new byte[128];
    }

    public static class NET_DVR_NFSCFG extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_SINGLE_NFS[] struNfsDiskParam = new NET_DVR_SINGLE_NFS[8];
    }

    public static class NET_DVR_CRUISE_POINT extends HIKSDKStructure {
        public byte PresetNum;

        public byte Dwell;

        public byte Speed;

        public byte Reserve;
    }

    public static class NET_DVR_CRUISE_RET extends HIKSDKStructure {
        public NET_DVR_CRUISE_POINT[] struCruisePoint = new NET_DVR_CRUISE_POINT[32];
    }

    public static class NET_DVR_NETCFG_OTHER extends HIKSDKStructure {
        public int dwSize;

        public byte[] sFirstDNSIP = new byte[16];

        public byte[] sSecondDNSIP = new byte[16];

        public byte[] sRes = new byte[32];
    }

    public static class NET_DVR_MATRIX_DECINFO extends HIKSDKStructure {
        public byte[] sDVRIP = new byte[16];

        public short wDVRPort;

        public byte byChannel;

        public byte byTransProtocol;

        public byte byTransMode;

        public byte[] byRes = new byte[3];

        public byte[] sUserName = new byte[32];

        public byte[] sPassword = new byte[16];
    }

    public static class NET_DVR_MATRIX_DYNAMIC_DEC extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_MATRIX_DECINFO struDecChanInfo;
    }

    public static class NET_DVR_MATRIX_DEC_CHAN_STATUS extends HIKSDKStructure {
        public int dwSize;

        public int dwIsLinked;

        public int dwStreamCpRate;

        public byte[] cRes = new byte[64];
    }

    public static class NET_DVR_MATRIX_DEC_CHAN_INFO extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_MATRIX_DECINFO struDecChanInfo;

        public int dwDecState;

        public NET_DVR_TIME StartTime;

        public NET_DVR_TIME StopTime;

        public byte[] sFileName = new byte[128];
    }

    public static class NET_DVR_MATRIX_DECCHANINFO extends HIKSDKStructure {
        public int dwEnable;

        public NET_DVR_MATRIX_DECINFO struDecChanInfo;
    }

    public static class NET_DVR_MATRIX_LOOP_DECINFO extends HIKSDKStructure {
        public int dwSize;

        public int dwPoolTime;

        public NET_DVR_MATRIX_DECCHANINFO[] struchanConInfo = new NET_DVR_MATRIX_DECCHANINFO[16];
    }

    public static class NET_DVR_MATRIX_ROW_ELEMENT extends HIKSDKStructure {
        public byte[] sSurvChanName = new byte[128];

        public int dwRowNum;

        public NET_DVR_MATRIX_DECINFO struDecChanInfo;
    }

    public static class NET_DVR_MATRIX_ROW_INDEX extends HIKSDKStructure {
        public byte[] sSurvChanName = new byte[128];

        public int dwRowNum;
    }

    public static class NET_DVR_MATRIX_COLUMN_ELEMENT extends HIKSDKStructure {
        public int dwLocalDispChanNum;

        public int dwGlobalDispChanNum;

        public int dwRes;
    }

    public static class NET_DVR_MATRIX_GLOBAL_COLUMN_ELEMENT extends HIKSDKStructure {
        public int dwConflictTag;

        public int dwConflictGloDispChan;

        public NET_DVR_MATRIX_COLUMN_ELEMENT struColumnInfo;
    }

    public static class NET_DVR_MATRIX_ROW_COLUMN_LINK extends HIKSDKStructure {
        public int dwSize;

        public int dwRowNum;

        public byte[] sSurvChanName = new byte[128];

        public int dwSurvNum;

        public int dwGlobalDispChanNum;

        public int dwLocalDispChanNum;

        public int dwTimeSel;

        public NET_DVR_TIME StartTime;

        public NET_DVR_TIME StopTime;

        public byte[] sFileName = new byte[128];
    }

    public static class NET_DVR_MATRIX_PREVIEW_DISP_CHAN extends HIKSDKStructure {
        public int dwSize;

        public int dwGlobalDispChanNum;

        public int dwLocalDispChanNum;
    }

    public static class NET_DVR_MATRIX_LOOP_PLAY_SET extends HIKSDKStructure {
        public int dwSize;

        public int dwLocalDispChanNum;

        public int dwGlobalDispChanNum;

        public int dwCycTimeInterval;
    }

    public static class NET_DVR_MATRIX_LOCAL_HOST_INFO extends HIKSDKStructure {
        public int dwSize;

        public int dwLocalHostProperty;

        public int dwIsIsolated;

        public int dwLocalMatrixHostPort;

        public byte[] byLocalMatrixHostUsrName = new byte[32];

        public byte[] byLocalMatrixHostPasswd = new byte[16];

        public int dwLocalMatrixCtrlMedia;

        public byte[] sMatrixCenterIP = new byte[16];

        public int dwMatrixCenterPort;

        public byte[] byMatrixCenterUsrName = new byte[32];

        public byte[] byMatrixCenterPasswd = new byte[16];
    }

    public static class TTY_CONFIG extends HIKSDKStructure {
        public byte baudrate;

        public byte databits;

        public byte stopbits;

        public byte parity;

        public byte flowcontrol;

        public byte[] res = new byte[3];
    }

    public static class NET_DVR_MATRIX_TRAN_CHAN_INFO extends HIKSDKStructure {
        public byte byTranChanEnable;

        public byte byLocalSerialDevice;

        public byte byRemoteSerialDevice;

        public byte res1;

        public byte[] sRemoteDevIP = new byte[16];

        public short wRemoteDevPort;

        public byte[] res2 = new byte[2];

        public TTY_CONFIG RemoteSerialDevCfg;
    }

    public static class NET_DVR_MATRIX_TRAN_CHAN_CONFIG extends HIKSDKStructure {
        public int dwSize;

        public byte by232IsDualChan;

        public byte by485IsDualChan;

        public byte[] res = new byte[2];

        public NET_DVR_MATRIX_TRAN_CHAN_INFO[] struTranInfo = new NET_DVR_MATRIX_TRAN_CHAN_INFO[64];
    }

    public static class NET_DVR_MATRIX_DEC_REMOTE_PLAY extends HIKSDKStructure {
        public int dwSize;

        public byte[] sDVRIP = new byte[16];

        public short wDVRPort;

        public byte byChannel;

        public byte byReserve;

        public byte[] sUserName = new byte[32];

        public byte[] sPassword = new byte[16];

        public int dwPlayMode;

        public NET_DVR_TIME StartTime;

        public NET_DVR_TIME StopTime;

        public byte[] sFileName = new byte[128];
    }

    public static class NET_DVR_MATRIX_DEC_REMOTE_PLAY_CONTROL extends HIKSDKStructure {
        public int dwSize;

        public int dwPlayCmd;

        public int dwCmdParam;
    }

    public static class NET_DVR_MATRIX_DEC_REMOTE_PLAY_STATUS extends HIKSDKStructure {
        public int dwSize;

        public int dwCurMediaFileLen;

        public int dwCurMediaFilePosition;

        public int dwCurMediaFileDuration;

        public int dwCurPlayTime;

        public int dwCurMediaFIleFrames;

        public int dwCurDataType;

        public byte[] res = new byte[72];
    }

    public static class NET_DVR_MATRIX_PASSIVEMODE extends HIKSDKStructure {
        public short wTransProtol;

        public short wPassivePort;

        public NET_DVR_IPADDR struMcastIP;

        public byte byStreamType;

        public byte[] res = new byte[7];
    }

    public static class NET_DVR_VIDEO_WALL_INFO extends HIKSDKStructure {
        public int dwSize;

        public int dwWindowNo;

        public int dwSceneNo;

        public int dwDestWallNo;

        public int dwDestSceneNo;

        public byte[] byRes = new byte[12];
    }

    public static class NET_DVR_SCENE_CONTROL_INFO extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_VIDEO_WALL_INFO struVideoWallInfo;

        public int dwCmd;

        public byte[] byRes = new byte[4];
    }

    public static class NET_DVR_BUF_INFO extends HIKSDKStructure {
        public Pointer pBuf;

        public int nLen;
    }

    public static class NET_DVR_IN_PARAM extends HIKSDKStructure {
        public NET_DVR_BUF_INFO struCondBuf;

        public NET_DVR_BUF_INFO struInParamBuf;

        public int dwRecvTimeout;

        public byte[] byRes = new byte[32];
    }

    public static class NET_DVR_OUT_PARAM extends HIKSDKStructure {
        public NET_DVR_BUF_INFO struOutBuf;

        public Pointer lpStatusList;

        public byte[] byRes = new byte[32];
    }

    public static class NET_DVR_RECTCFG_EX extends HIKSDKStructure {
        public int dwXCoordinate;

        public int dwYCoordinate;

        public int dwWidth;

        public int dwHeight;

        public byte[] byRes = new byte[4];
    }

    public static class NET_DVR_VIDEOWALLWINDOWPOSITION extends HIKSDKStructure {
        public int dwSize;

        public byte byEnable;

        public byte byWndOperateMode;

        public byte[] byRes1 = new byte[6];

        public int dwWindowNo;

        public int dwLayerIndex;

        public NET_DVR_RECTCFG_EX struRect;

        public NET_DVR_RECTCFG_EX struResolution;

        public int dwXCoordinate;

        public int dwYCoordinate;

        public byte[] byRes2 = new byte[36];
    }

    public static class VIDEOWALLWINDOWPOSITION_ARRAY extends HIKSDKStructure {
        public NET_DVR_VIDEOWALLWINDOWPOSITION[] strVideoWinPostion;

        public VIDEOWALLWINDOWPOSITION_ARRAY(int iLen) {
            this.strVideoWinPostion = new NET_DVR_VIDEOWALLWINDOWPOSITION[iLen];
        }
    }

    public static class NET_DVR_WALLWINPARAM extends HIKSDKStructure {
        public int dwSize;

        public byte byTransparency;

        public byte byWinMode;

        public byte byEnableSpartan;

        public byte byDecResource;

        public byte byWndShowMode;

        public byte byEnabledFeature;

        public byte byFeatureMode;

        public byte byRes1;

        public int dwAmplifyingSubWndNo;

        public byte byWndTopKeep;

        public byte byWndOpenKeep;

        public byte[] byRes = new byte[22];
    }

    public static class NET_DVR_PLAN_LIST extends HIKSDKStructure {
        public int dwSize;

        public int dwPlanNums;

        public Pointer pBuffer;

        public byte byWallNo;

        public byte[] byRes1 = new byte[2];

        public int dwBufLen;

        public byte[] byRes2 = new byte[64];
    }

    public static class NET_DVR_PLAN_INFO extends HIKSDKStructure {
        public byte byValid;

        public byte byType;

        public short wLayoutNo;

        public byte byScreenStyle;

        public byte byBaseMapType;

        public byte[] byRes1 = new byte[2];

        public int dwDelayTime;

        public int dwSerialNo;

        public int dwBaseMapWndNo;

        public int dwBaseMapNo;

        public byte[] byRes2 = new byte[20];
    }

    public static class NET_DVR_CYCLE_TIME extends HIKSDKStructure {
        public byte byValid;

        public byte[] byRes = new byte[3];

        public NET_DVR_TIME_EX struTime = new NET_DVR_TIME_EX();
    }

    public static class NET_DVR_PLAN_CFG extends HIKSDKStructure {
        public int dwSize;

        public byte byValid;

        public byte byWorkMode;

        public byte byWallNo;

        public byte byPlanNo;

        public byte[] byPlanName = new byte[32];

        public NET_DVR_TIME_EX struTime;

        public NET_DVR_CYCLE_TIME[] struTimeCycle = new NET_DVR_CYCLE_TIME[7];

        public int dwWorkCount;

        public NET_DVR_PLAN_INFO[] strPlanEntry = new NET_DVR_PLAN_INFO[32];

        public int dwPlanNo;

        public byte[] byRes2 = new byte[60];
    }

    public static class NET_DVR_WALLSCENECFG extends HIKSDKStructure {
        public int dwSize;

        public byte[] sSceneName = new byte[32];

        public byte byEnable;

        public byte bySceneIndex;

        public byte[] byRes = new byte[78];
    }

    public static class NET_DVR_SUBWND_DECODE_OSD extends HIKSDKStructure {
        public int dwSize = 0;

        public int dwSubWndNo = 0;

        public int dwOSDNums = 0;

        public NET_DVR_OSD_INFO[] struOSDList = new NET_DVR_OSD_INFO[8];

        public byte[] byRes = new byte[32];
    }

    public static class NET_DVR_OSD_INFO extends HIKSDKStructure {
        public byte byEnabled = 1;

        public byte byEnabledFlash = 0;

        public byte byFontSize = 1;

        public byte byTransparent = 0;

        public NET_DVR_RGB_COLOR struColor = new NET_DVR_RGB_COLOR();

        public short wCoordinateX = 0;

        public short wCoordinateY = 0;

        public byte[] byContent = new byte[256];

        public byte[] byRes = new byte[32];
    }

    public static class NET_DVR_DEV_CHAN_INFO_EX extends HIKSDKStructure {
        public byte byChanType;

        public byte[] byStreamId = new byte[32];

        public byte[] byRes1 = new byte[3];

        public int dwChannel;

        public byte[] byRes2 = new byte[24];

        public byte[] byAddress = new byte[64];

        public short wDVRPort;

        public byte byChannel;

        public byte byTransProtocol;

        public byte byTransMode;

        public byte byFactoryType;

        public byte byDeviceType;

        public byte byDispChan;

        public byte bySubDispChan;

        public byte byResolution;

        public byte[] byRes = new byte[2];

        public byte[] sUserName = new byte[32];

        public byte[] sPassword = new byte[16];
    }

    public static class NET_DVR_STREAM_MEDIA_SERVER extends HIKSDKStructure {
        public byte byValid;

        public byte[] byRes1 = new byte[3];

        public byte[] byAddress = new byte[64];

        public short wDevPort;

        public byte byTransmitType;

        public byte[] byRes2 = new byte[5];
    }

    public static class NET_DVR_DEV_DDNS_INFO extends HIKSDKStructure {
        public byte[] byDevAddress = new byte[64];

        public byte byTransProtocol;

        public byte byTransMode;

        public byte byDdnsType;

        public byte byRes1;

        public byte[] byDdnsAddress = new byte[64];

        public short wDdnsPort;

        public byte byChanType;

        public byte byFactoryType;

        public int dwChannel;

        public byte[] byStreamId = new byte[32];

        public byte[] sUserName = new byte[32];

        public byte[] sPassword = new byte[16];

        public short wDevPort;

        public byte[] byRes2 = new byte[2];
    }

    public static class NET_DVR_DEC_STREAM_DEV_EX extends HIKSDKStructure {
        public NET_DVR_STREAM_MEDIA_SERVER struStreamMediaSvrCfg = new NET_DVR_STREAM_MEDIA_SERVER();

        public NET_DVR_DEV_CHAN_INFO_EX struDevChanInfo = new NET_DVR_DEV_CHAN_INFO_EX();
    }

    public static class NET_DVR_DEC_DDNS_DEV extends HIKSDKStructure {
        public NET_DVR_DEV_DDNS_INFO struDdnsInfo;

        public NET_DVR_STREAM_MEDIA_SERVER struMediaServer;
    }

    public static class NET_DVR_DEC_STREAM_MODE extends Union {
        public NET_DVR_DEC_STREAM_DEV_EX struDecStreamDev = new NET_DVR_DEC_STREAM_DEV_EX();

        public NET_DVR_PU_STREAM_URL struUrlInfo = new NET_DVR_PU_STREAM_URL();

        public NET_DVR_DEC_DDNS_DEV struDdnsDecInfo = new NET_DVR_DEC_DDNS_DEV();

        public byte[] byRes = new byte[300];
    }

    public static class NET_DVR_MATRIX_CHAN_INFO_V41 extends HIKSDKStructure {
        public byte byEnable;

        public byte byStreamMode;

        public byte[] byRes = new byte[2];

        public NET_DVR_DEC_STREAM_MODE uDecStreamMode = new NET_DVR_DEC_STREAM_MODE();
    }

    public static class NET_DVR_MATRIX_LOOP_DECINFO_V41 extends HIKSDKStructure {
        public int dwSize;

        public int dwPoolTime;

        public NET_DVR_MATRIX_CHAN_INFO_V41[] struchanConInfo = new NET_DVR_MATRIX_CHAN_INFO_V41[64];

        public byte byStreamEncrypt;

        public byte[] byRes = new byte[3];

        public byte[] sStreamPassword = new byte[12];
    }

    public static class NET_DVR_EMAILCFG extends HIKSDKStructure {
        public int dwSize;

        public byte[] sUserName = new byte[32];

        public byte[] sPassWord = new byte[32];

        public byte[] sFromName = new byte[32];

        public byte[] sFromAddr = new byte[48];

        public byte[] sToName1 = new byte[32];

        public byte[] sToName2 = new byte[32];

        public byte[] sToAddr1 = new byte[48];

        public byte[] sToAddr2 = new byte[48];

        public byte[] sEmailServer = new byte[32];

        public byte byServerType;

        public byte byUseAuthen;

        public byte byAttachment;

        public byte byMailinterval;
    }

    public static class NET_DVR_COMPRESSIONCFG_NEW extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_COMPRESSION_INFO_EX struLowCompression;

        public NET_DVR_COMPRESSION_INFO_EX struEventCompression;
    }

    public static class NET_DVR_PTZPOS extends HIKSDKStructure {
        public short wAction;

        public short wPanPos;

        public short wTiltPos;

        public short wZoomPos;
    }

    public static class NET_DVR_PTZSCOPE extends HIKSDKStructure {
        public short wPanPosMin;

        public short wPanPosMax;

        public short wTiltPosMin;

        public short wTiltPosMax;

        public short wZoomPosMin;

        public short wZoomPosMax;
    }

    public static class NET_DVR_PTZABSOLUTEEX_CFG extends HIKSDKStructure {
        public int dwSize;

        public NET_PTZ_INFO struPTZCtrl = new NET_PTZ_INFO();

        public int dwFocalLen;

        public float fHorizontalSpeed;

        public float fVerticalSpeed;

        public byte byZoomType;

        public byte[] byRes = new byte[123];
    }

    public static class NET_DVR_RTSPCFG extends HIKSDKStructure {
        public int dwSize;

        public short wPort;

        public byte[] byReserve = new byte[54];
    }

    public static class NET_DVR_DEVICEINFO extends HIKSDKStructure {
        public byte[] sSerialNumber = new byte[48];

        public byte byAlarmInPortNum;

        public byte byAlarmOutPortNum;

        public byte byDiskNum;

        public byte byDVRType;

        public byte byChanNum;

        public byte byStartChan;
    }

    public static class NET_DVR_DEVICEINFO_V30 extends HIKSDKStructure {
        public byte[] sSerialNumber = new byte[48];

        public byte byAlarmInPortNum;

        public byte byAlarmOutPortNum;

        public byte byDiskNum;

        public byte byDVRType;

        public byte byChanNum;

        public byte byStartChan;

        public byte byAudioChanNum;

        public byte byIPChanNum;

        public byte byZeroChanNum;

        public byte byMainProto;

        public byte bySubProto;

        public byte bySupport;

        public byte bySupport1;

        public byte bySupport2;

        public short wDevType;

        public byte bySupport3;

        public byte byMultiStreamProto;

        public byte byStartDChan;

        public byte byStartDTalkChan;

        public byte byHighDChanNum;

        public byte bySupport4;

        public byte byLanguageType;

        public byte byVoiceInChanNum;

        public byte byStartVoiceInChanNo;

        public byte bySupport5;

        public byte bySupport6;

        public byte byMirrorChanNum;

        public short wStartMirrorChanNo;

        public byte bySupport7;

        public byte byRes2;
    }

    public static interface FLoginResultCallBack extends Callback {
        int invoke(int param1Int1, int param1Int2, NET_DVR_DEVICEINFO_V30 param1NET_DVR_DEVICEINFO_V30, Pointer param1Pointer);
    }

    public static class NET_DVR_USER_LOGIN_INFO extends HIKSDKStructure {
        public byte[] sDeviceAddress = new byte[129];

        public byte byUseTransport;

        public short wPort;

        public byte[] sUserName = new byte[64];

        public byte[] sPassword = new byte[64];

        public FLoginResultCallBack cbLoginResult;

        public Pointer pUser;

        public boolean bUseAsynLogin;

        public byte byProxyType;

        public byte byUseUTCTime;

        public byte byLoginMode;

        public byte byHttps;

        public int iProxyID;

        public byte byVerifyMode;

        public byte[] byRes2 = new byte[119];
    }

    public static class NET_DVR_DEVICEINFO_V40 extends HIKSDKStructure {
        public NET_DVR_DEVICEINFO_V30 struDeviceV30 = new NET_DVR_DEVICEINFO_V30();

        public byte bySupportLock;

        public byte byRetryLoginTime;

        public byte byPasswordLevel;

        public byte byRes1;

        public int dwSurplusLockTime;

        public byte byCharEncodeType;

        public byte bySupportDev5;

        public byte bySupport;

        public byte byLoginMode;

        public int dwOEMCode;

        public int iResidualValidity;

        public byte byResidualValidity;

        public byte bySingleStartDTalkChan;

        public byte bySingleDTalkChanNums;

        public byte byPassWordResetLevel;

        public byte bySupportStreamEncrypt;

        public byte byMarketType;

        public byte[] byRes2 = new byte[238];
    }

    public enum _SDK_NET_ENV {
        LOCAL_AREA_NETWORK, WIDE_AREA_NETWORK;
    }

    public enum DISPLAY_MODE {
        NORMALMODE, OVERLAYMODE;
    }

    public enum SEND_MODE {
        PTOPTCPMODE, PTOPUDPMODE, MULTIMODE, RTPMODE, RESERVEDMODE;
    }

    public enum CAPTURE_MODE {
        BMP_MODE, JPEG_MODE;
    }

    public enum REALSOUND_MODE {
        NONE, MONOPOLIZE_MODE, SHARE_MODE;
    }

    public static class NET_DVR_CLIENTINFO extends HIKSDKStructure {
        public int lChannel;

        public int lLinkMode;

        public WinDef.HWND hPlayWnd;

        public String sMultiCastIP;
    }

    public static class NET_DVR_PREVIEWINFO extends HIKSDKStructure {
        public int lChannel;

        public int dwStreamType;

        public int dwLinkMode;

        public WinDef.HWND hPlayWnd;

        public int bBlocked;

        public int bPassbackRecord;

        public byte byPreviewMode;

        public byte[] byStreamID = new byte[32];

        public byte byProtoType;

        public byte byRes1;

        public byte byVideoCodingType;

        public int dwDisplayBufNum;

        public byte byNPQMode;

        public byte[] byRes = new byte[215];
    }

    public static class NET_DVR_STREAM_INFO extends HIKSDKStructure {
        public int dwSize;

        public byte[] byID = new byte[32];

        public int dwChannel;

        public byte[] byRes = new byte[32];
    }

    public static class NET_DVR_CLOUDSTORAGE_COND extends HIKSDKStructure {
        public int dwSize;

        public int dwChannel;

        public byte[] byRes1 = new byte[64];
    }

    public static class NET_DVR_STREAM_RECORD_STATUS extends HIKSDKStructure {
        public int dwSize;

        public byte byRecord;

        public byte byOffLineRecord;

        public byte[] byRes1 = new byte[2];

        public int dwRelatedHD;

        public byte[] byRes2 = new byte[8];
    }

    public static class NET_DVR_SDKSTATE extends HIKSDKStructure {
        public int dwTotalLoginNum;

        public int dwTotalRealPlayNum;

        public int dwTotalPlayBackNum;

        public int dwTotalAlarmChanNum;

        public int dwTotalFormatNum;

        public int dwTotalFileSearchNum;

        public int dwTotalLogSearchNum;

        public int dwTotalSerialNum;

        public int dwTotalUpgradeNum;

        public int dwTotalVoiceComNum;

        public int dwTotalBroadCastNum;

        public int[] dwRes = new int[10];
    }

    public static class NET_DVR_SDKABL extends HIKSDKStructure {
        public int dwMaxLoginNum;

        public int dwMaxRealPlayNum;

        public int dwMaxPlayBackNum;

        public int dwMaxAlarmChanNum;

        public int dwMaxFormatNum;

        public int dwMaxFileSearchNum;

        public int dwMaxLogSearchNum;

        public int dwMaxSerialNum;

        public int dwMaxUpgradeNum;

        public int dwMaxVoiceComNum;

        public int dwMaxBroadCastNum;

        public int[] dwRes = new int[10];
    }

    public static class NET_DVR_ALARMER extends HIKSDKStructure {
        public byte byUserIDValid;

        public byte bySerialValid;

        public byte byVersionValid;

        public byte byDeviceNameValid;

        public byte byMacAddrValid;

        public byte byLinkPortValid;

        public byte byDeviceIPValid;

        public byte bySocketIPValid;

        public int lUserID;

        public byte[] sSerialNumber = new byte[48];

        public int dwDeviceVersion;

        public byte[] sDeviceName = new byte[32];

        public byte[] byMacAddr = new byte[6];

        public short wLinkPort;

        public byte[] sDeviceIP = new byte[128];

        public byte[] sSocketIP = new byte[128];

        public byte byIpProtocol;

        public byte[] byRes2 = new byte[11];
    }

    public static class NET_DVR_DISPLAY_PARA extends HIKSDKStructure {
        public int bToScreen;

        public int bToVideoOut;

        public int nLeft;

        public int nTop;

        public int nWidth;

        public int nHeight;

        public int nReserved;
    }

    public static class NET_DVR_CARDINFO extends HIKSDKStructure {
        public int lChannel;

        public int lLinkMode;

        public String sMultiCastIP;

        public NET_DVR_DISPLAY_PARA struDisplayPara;
    }

    public static class NET_DVR_FIND_DATA extends HIKSDKStructure {
        public byte[] sFileName = new byte[100];

        public NET_DVR_TIME struStartTime;

        public NET_DVR_TIME struStopTime;

        public int dwFileSize;
    }

    public static class NET_DVR_FINDDATA_V30 extends HIKSDKStructure {
        public byte[] sFileName = new byte[100];

        public NET_DVR_TIME struStartTime;

        public NET_DVR_TIME struStopTime;

        public int dwFileSize;

        public byte[] sCardNum = new byte[32];

        public byte byLocked;

        public byte[] byRes = new byte[3];
    }

    public static class NET_DVR_FINDDATA_CARD extends HIKSDKStructure {
        public byte[] sFileName = new byte[100];

        public NET_DVR_TIME struStartTime;

        public NET_DVR_TIME struStopTime;

        public int dwFileSize;

        public byte[] sCardNum = new byte[32];
    }

    public static class NET_DVR_FILECOND_V40 extends HIKSDKStructure {
        public int lChannel;

        public int dwFileType;

        public int dwIsLocked;

        public int dwUseCardNo;

        public byte[] sCardNumber = new byte[32];

        public NET_DVR_TIME struStartTime = new NET_DVR_TIME();

        public NET_DVR_TIME struStopTime = new NET_DVR_TIME();

        public byte byDrawFrame;

        public byte byFindType;

        public byte byQuickSearch;

        public byte bySpecialFindInfoType;

        public int dwVolumeNum;

        public byte[] byWorkingDeviceGUID = new byte[16];

        public NET_DVR_SPECIAL_FINDINFO_UNION uSpecialFindInfo = new NET_DVR_SPECIAL_FINDINFO_UNION();

        public byte byStreamType;

        public byte byAudioFile;

        public byte[] byRes2 = new byte[30];
    }

    public static class NET_DVR_SPECIAL_FINDINFO_UNION extends Union {
        public byte[] byLenth = new byte[8];

        public NET_DVR_ATMFINDINFO struATMFindInfo = new NET_DVR_ATMFINDINFO();
    }

    public static class NET_DVR_ATMFINDINFO extends HIKSDKStructure {
        public byte byTransactionType;

        public byte[] byRes = new byte[3];

        public int dwTransationAmount;
    }

    public static class NET_DVR_FILECOND_V50 extends HIKSDKStructure {
        public NET_DVR_STREAM_INFO struStreamID;

        public NET_DVR_TIME_SEARCH_COND struStartTime = new NET_DVR_TIME_SEARCH_COND();

        public NET_DVR_TIME_SEARCH_COND struStopTime = new NET_DVR_TIME_SEARCH_COND();

        public byte byFindType;

        public byte byDrawFrame;

        public byte byQuickSearch;

        public byte byStreamType;

        public int dwFileType;

        public int dwVolumeNum;

        public byte byIsLocked;

        public byte byNeedCard;

        public byte byOnlyAudioFile;

        public byte bySpecialFindInfoType;

        public byte[] szCardNum = new byte[32];

        public byte[] szWorkingDeviceGUID = new byte[16];

        public NET_DVR_SPECIAL_FINDINFO_UNION uSpecialFindInfo = new NET_DVR_SPECIAL_FINDINFO_UNION();

        public int dwTimeout;

        public byte[] byRes = new byte[252];
    }

    public static class NET_DVR_FINDDATA_V40 extends HIKSDKStructure {
        public byte[] sFileName = new byte[100];

        public NET_DVR_TIME struStartTime = new NET_DVR_TIME();

        public NET_DVR_TIME struStopTime = new NET_DVR_TIME();

        public int dwFileSize;

        public byte[] sCardNum = new byte[32];

        public byte byLocked;

        public byte byFileType;

        public byte byQuickSearch;

        public byte byRes;

        public int dwFileIndex;

        public byte byStreamType;

        public byte[] byRes1 = new byte[127];
    }

    public static class NET_DVR_TIME_SEARCH extends HIKSDKStructure {
        public short wYear;

        public byte byMonth;

        public byte byDay;

        public byte byHour;

        public byte byMinute;

        public byte bySecond;

        public byte cTimeDifferenceH;

        public byte cTimeDifferenceM;

        public byte byLocalOrUTC;

        public short wMillisecond;
    }

    public static class NET_DVR_ADDRESS extends HIKSDKStructure {
        public NET_DVR_IPADDR struIP = new NET_DVR_IPADDR();

        public short wPort;

        public byte[] byRes = new byte[2];
    }

    public static class NET_DVR_FINDDATA_V50 extends HIKSDKStructure {
        public byte[] sFileName = new byte[100];

        public NET_DVR_TIME_SEARCH struStartTime = new NET_DVR_TIME_SEARCH();

        public NET_DVR_TIME_SEARCH struStopTime = new NET_DVR_TIME_SEARCH();

        public NET_DVR_ADDRESS struAddr = new NET_DVR_ADDRESS();

        public int dwFileSize;

        public byte byLocked;

        public byte byFileType;

        public byte byQuickSearch;

        public byte byStreamType;

        public int dwFileIndex;

        public byte[] sCardNum = new byte[32];

        public int dwTotalLenH;

        public int dwTotalLenL;

        public byte byBigFileType;

        public byte[] byRes = new byte[247];
    }

    public static class NET_DVR_FILECOND extends HIKSDKStructure {
        public int lChannel;

        public int dwFileType;

        public int dwIsLocked;

        public int dwUseCardNo;

        public byte[] sCardNumber = new byte[32];

        public NET_DVR_TIME struStartTime;

        public NET_DVR_TIME struStopTime;
    }

    //回放或者下载信息结构体
    public static class NET_DVR_PLAYCOND extends HIKSDKStructure {
        public int dwChannel;//通道号

        public NET_DVR_TIME struStartTime;

        public NET_DVR_TIME struStopTime;

        public byte byDrawFrame;//0:不抽帧，1：抽帧

        public byte byStreamType;//码流类型，0-主码流 1-子码流 2-码流三

        public byte[] byStreamID = new byte[32];

        public byte[] byRes = new byte[30];
    }

    public static class NET_DVR_VOD_PARA extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_STREAM_INFO struIDInfo;

        public NET_DVR_TIME struBeginTime;

        public NET_DVR_TIME struEndTime;

        public WinDef.HWND hWnd;

        public byte byDrawFrame;

        public byte byVolumeType;

        public byte byVolumeNum;

        public byte byStreamType;

        public int dwFileIndex;

        public byte byAudioFile;

        public byte byCourseFile;

        public byte byDownload;

        public byte byOptimalStreamType;

        public byte[] byRes2 = new byte[20];
    }

    public static class NET_DVR_FIND_PICTURE_PARAM extends HIKSDKStructure {
        public int dwSize;

        public int lChannel;

        public byte byFileType;

        public byte byNeedCard;

        public byte byProvince;

        public byte byEventType;

        public byte[] sCardNum = new byte[40];

        public NET_DVR_TIME struStartTime = new NET_DVR_TIME();

        public NET_DVR_TIME struStopTime = new NET_DVR_TIME();

        public int dwTrafficType;

        public int dwVehicleType;

        public int dwIllegalType;

        public byte byLaneNo;

        public byte bySubHvtType;

        public byte[] byRes2 = new byte[2];

        public byte[] sLicense = new byte[16];

        public byte byRegion;

        public byte byCountry;

        public byte byArea;

        public byte byISO8601;

        public byte cStartTimeDifferenceH;

        public byte cStartTimeDifferenceM;

        public byte cStopTimeDifferenceH;

        public byte cStopTimeDifferenceM;
    }

    public static class NET_DVR_FIND_PICTURE extends HIKSDKStructure {
        public byte[] sFileName = new byte[64];

        public NET_DVR_TIME struTime;

        public int dwFileSize;

        public byte[] sCardNum = new byte[40];

        public byte byPlateColor;

        public byte byVehicleLogo;

        public byte byEventSearchStatus;

        public byte byRecogResult;

        public byte[] sLicense = new byte[16];

        public byte[] byRes = new byte[12];
    }

    public static class NET_DVR_FIND_PICTURE_V50 extends HIKSDKStructure {
        public byte[] sFileName = new byte[64];

        public NET_DVR_TIME struTime = new NET_DVR_TIME();

        public int dwFileSize;

        public byte[] sCardNum = new byte[40];

        public byte byPlateColor;

        public byte byVehicleLogo;

        public byte byFileType;

        public byte byRecogResult;

        public byte[] sLicense = new byte[16];

        public byte byEventSearchStatus;

        public NET_DVR_ADDRESS struAddr;

        public byte[] byRes = new byte[256];

        public NET_DVR_PIC_EXTRA_INFO_UNION uPicExtraInfo;
    }

    public static class NET_DVR_PIC_PARAM extends HIKSDKStructure {
        public Pointer pDVRFileName;

        public Pointer pSavedFileBuf;

        public int dwBufLen;

        public IntByReference lpdwRetLen;

        public NET_DVR_ADDRESS struAddr;

        public byte[] byRes = new byte[256];
    }

    public static class NET_DVR_FIND_PICTURE_V40 extends HIKSDKStructure {
        public byte[] sFileName = new byte[64];

        public NET_DVR_TIME struTime = new NET_DVR_TIME();

        public int dwFileSize;

        public byte[] sCardNum = new byte[40];

        public byte byPlateColor;

        public byte byVehicleLogo;

        public byte byFileType;

        public byte byRecogResult;

        public byte[] sLicense = new byte[16];

        public byte byEventSearchStatus;

        public byte[] byRes = new byte[75];

        public NET_DVR_PIC_EXTRA_INFO_UNION uPicExtraInfo;
    }

    public static class NET_DVR_FACE_EXTRA_INFO extends Union {
        public NET_VCA_RECT[] struVcaRect = new NET_VCA_RECT[30];

        public byte[] byRes = new byte[64];
    }

    public static class NET_DVR_PIC_EXTRA_INFO_UNION extends Union {
        public byte[] byUnionLen = new byte[544];

        public NET_DVR_FACE_EXTRA_INFO struFaceExtraInfo;
    }

    public static class NET_DVR_PACKET_INFO_EX extends Union {
        public short wWidth;

        public short wHeight;

        public int dwTimeStamp;

        public int dwTimeStampHigh;

        public int dwYear;

        public int dwMonth;

        public int dwDay;

        public int dwHour;

        public int dwMinute;

        public int dwSecond;

        public int dwMillisecond;

        public int dwFrameNum;

        public int dwFrameRate;

        public int dwFlag;

        public int dwFilePos;

        public int dwPacketType;

        public int dwPacketSize;

        public Pointer pPacketBuffer;

        public byte[] byRes1 = new byte[4];

        public int dwPacketMode;

        public byte[] byRes2 = new byte[16];

        public int[] dwReserved = new int[6];
    }

    public static class NET_DVR_POINT_FRAME extends HIKSDKStructure {
        public int xTop;

        public int yTop;

        public int xBottom;

        public int yBottom;

        public int bCounter;
    }

    public static class NET_DVR_COMPRESSION_AUDIO extends HIKSDKStructure {
        public byte byAudioEncType;

        public byte[] byres = new byte[7];
    }

    public static class NET_DVR_AUDIODEC_INFO extends HIKSDKStructure {
        public int nchans;

        public int sample_rate;

        public int aacdec_profile;

        public int[] reserved = new int[16];
    }

    public static class NET_DVR_AUDIODEC_PROCESS_PARAM extends HIKSDKStructure {
        public Pointer in_buf;

        public Pointer out_buf;

        public int in_data_size;

        public int proc_data_size;

        public int out_frame_size;

        public NET_DVR_AUDIODEC_INFO dec_info = new NET_DVR_AUDIODEC_INFO();

        public int g726dec_reset;

        public int g711_type;

        public int[] reserved = new int[16];
    }

    public static class NET_DVR_AUDIOENC_INFO extends HIKSDKStructure {
        public int in_frame_size;

        public int[] reserved = new int[16];
    }

    public static class NET_DVR_AUDIOENC_PROCESS_PARAM extends HIKSDKStructure {
        public Pointer in_buf;

        public Pointer out_buf;

        public int out_frame_size;

        public int g726enc_reset;

        public int g711_type;

        public int enc_mode;

        public int[] reserved = new int[16];
    }

    public static class RECV_ALARM extends HIKSDKStructure {
        public byte[] RecvBuffer = new byte[4000];
    }

    public static class NET_DVR_SETUPALARM_PARAM extends HIKSDKStructure {
        public int dwSize;

        public byte byLevel;

        public byte byAlarmInfoType;

        public byte byRetAlarmTypeV40;

        public byte byRetDevInfoVersion;

        public byte byRetVQDAlarmType;

        public byte byFaceAlarmDetection;

        public byte bySupport;

        public byte byBrokenNetHttp;

        public short wTaskNo;

        public byte byDeployType;

        public byte[] byRes1 = new byte[3];

        public byte byAlarmTypeURL;

        public byte byCustomCtrl;
    }

    public static class NET_DVR_SETUPALARM_PARAM_V50 extends HIKSDKStructure {
        public int dwSize;

        public byte byLevel;

        public byte byAlarmInfoType;

        public byte byRetAlarmTypeV40;

        public byte byRetDevInfoVersion;

        public byte byRetVQDAlarmType;

        public byte byFaceAlarmDetection;

        public byte bySupport;

        public byte byBrokenNetHttp;

        public short wTaskNo;

        public byte byDeployType;

        public byte bySubScription;

        public byte[] byRes1 = new byte[2];

        public byte byAlarmTypeURL;

        public byte byCustomCtrl;

        public byte[] byRes4 = new byte[128];
    }

    public static class NET_VCA_RECT extends HIKSDKStructure {
        public float fX;

        public float fY;

        public float fWidth;

        public float fHeight;
    }

    public static class NET_VCA_TARGET_INFO extends HIKSDKStructure {
        public int dwID;

        public NET_VCA_RECT struRect;

        public byte[] byRes = new byte[4];
    }

    public static class NET_VCA_DEV_INFO extends HIKSDKStructure {
        public NET_DVR_IPADDR struDevIP;

        public short wPort;

        public byte byChannel;

        public byte byIvmsChannel;
    }

    public static class NET_VCA_RULE_INFO extends HIKSDKStructure {
        public byte byRuleID;

        public byte byRes;

        public short wEventTypeEx;

        public byte[] byRuleName = new byte[32];

        public int dwEventType;

        public NET_VCA_EVENT_UNION uEventParam;

        public void read() {
            super.read();
            switch (this.wEventTypeEx) {
                case 1:
                    this.uEventParam.setType(NET_VCA_TRAVERSE_PLANE.class);
                    break;
                case 2:
                    this.uEventParam.setType(NET_VCA_AREA.class);
                    break;
                case 3:
                    this.uEventParam.setType(NET_VCA_AREA.class);
                    break;
                case 4:
                    this.uEventParam.setType(NET_VCA_INTRUSION.class);
                    break;
                case 15:
                    this.uEventParam.setType(NET_VCA_LEAVE_POSITION.class);
                    break;
            }
            this.uEventParam.read();
        }

        public void write() {
            super.write();
            this.uEventParam.write();
        }
    }

    public static class NET_VCA_EVENT_UNION extends Union {
        public int[] uLen = new int[23];

        public NET_VCA_TRAVERSE_PLANE struTraversePlane;

        public NET_VCA_AREA struArea;

        public NET_VCA_INTRUSION struIntrusion;

        public NET_VCA_LEAVE_POSITION struLeavePos;
    }

    public static class NET_VCA_TRAVERSE_PLANE extends HIKSDKStructure {
        public NET_VCA_LINE struPlaneBottom;

        public int dwCrossDirection;

        public byte bySensitivity;

        public byte byPlaneHeight;

        public byte byDetectionTarget;

        public byte[] byRes2 = new byte[37];
    }

    public static class NET_VCA_INTRUSION extends HIKSDKStructure {
        public NET_VCA_POLYGON struRegion;

        public short wDuration;

        public byte bySensitivity;

        public byte byRate;

        public byte byDetectionTarget;

        public byte byPriority;

        public byte byAlarmConfidence;

        public byte byRecordConfidence;
    }

    public static class NET_VCA_LEAVE_POSITION extends HIKSDKStructure {
        public NET_VCA_POLYGON struRegion;

        public short wLeaveDelay;

        public short wStaticDelay;

        public byte byMode;

        public byte byPersonType;

        public byte byOnPosition;

        public byte bySensitivity;
    }

    public static class NET_DVR_HANDLEEXCEPTION_V40 extends HIKSDKStructure {
        public int dwHandleType;

        public int dwMaxRelAlarmOutChanNum;

        public int dwRelAlarmOutChanNum;

        public int[] dwRelAlarmOut = new int[64];

        public byte[] byRes = new byte[64];
    }

    public static class NET_VCA_TRAVERSE_PLANE_DETECTION extends HIKSDKStructure {
        public int dwSize;

        public byte byEnable;

        public byte byEnableDualVca;

        public byte[] byRes1 = new byte[2];

        public NET_VCA_TRAVERSE_PLANE[] struAlertParam = new NET_VCA_TRAVERSE_PLANE[8];

        public NET_DVR_SCHEDTIMEWEEK[] struAlarmSched = new NET_DVR_SCHEDTIMEWEEK[7];

        public NET_DVR_HANDLEEXCEPTION_V40 struHandleException;

        public int dwMaxRelRecordChanNum;

        public int dwRelRecordChanNum;

        public int[] byRelRecordChan = new int[64];

        public NET_DVR_SCHEDTIME[] struHolidayTime = new NET_DVR_SCHEDTIME[8];

        public byte[] byRes2 = new byte[100];
    }

    public static class NET_VCA_RUN extends HIKSDKStructure {
        public NET_VCA_POLYGON struRegion;

        public float fRunDistance;

        public byte bySensitivity;

        public byte byMode;

        public byte byDetectionTarget;

        public byte byRes;
    }

    public static class NET_VCA_RUNNING extends HIKSDKStructure {
        public NET_VCA_POLYGON struRegion;

        public int dwSpeed;

        public short wDuration;

        public byte byRunMode;

        public byte byRes;
    }

    public static class NET_VCA_FALL_DOWN extends HIKSDKStructure {
        public NET_VCA_POLYGON struRegion;

        public short wDuration;

        public short bySensitivity;

        public short byHeightThreshold;

        public byte[] byRes = new byte[4];
    }

    public static class NET_VCA_FIELDDETECION extends HIKSDKStructure {
        public int dwSize;

        public byte byEnable;

        public byte byEnableDualVca;

        public byte byEnableHumanMisinfoFilter;

        public byte byEnableVehicleMisinfoFilter;

        public NET_VCA_INTRUSION[] struIntrusion = new NET_VCA_INTRUSION[8];

        public NET_DVR_SCHEDTIMEWEEK[] struAlarmSched = new NET_DVR_SCHEDTIMEWEEK[7];

        public NET_DVR_HANDLEEXCEPTION_V40 struHandleException;

        public int dwMaxRelRecordChanNum;

        public int dwRelRecordChanNum;

        public int[] byRelRecordChan = new int[64];

        public NET_DVR_SCHEDTIME[] struHolidayTime = new NET_DVR_SCHEDTIME[8];

        public byte[] byRes2 = new byte[100];
    }

    public static class NET_DVR_CHANNEL_GROUP extends HIKSDKStructure {
        public int dwSize;

        public int dwChannel;

        public int dwGroup;

        public byte byID;

        public byte[] byRes1 = new byte[3];

        public int dwPositionNo;

        public byte[] byRes = new byte[56];
    }

    public static class NET_VCA_LINE extends HIKSDKStructure {
        public NET_VCA_POINT struStart;

        public NET_VCA_POINT struEnd;
    }

    public static class NET_VCA_POINT extends HIKSDKStructure {
        public float fX;

        public float fY;
    }

    public static class NET_VCA_AREA extends HIKSDKStructure {
        public NET_VCA_POLYGON struRegion;

        public byte bySensitivity;

        public byte byDetectionTarget;

        public byte byPriority;

        public byte[] byRes = new byte[5];
    }

    public static class NET_VCA_POLYGON extends HIKSDKStructure {
        public int dwPointNum;

        public NET_VCA_POINT[] struPos = new NET_VCA_POINT[10];
    }

    public static class NET_VCA_SIZE_FILTER extends HIKSDKStructure {
        public byte byActive;

        public byte byMode;

        public byte[] byRes = new byte[2];

        public NET_VCA_RECT struMiniRect;

        public NET_VCA_RECT struMaxRect;
    }

    public static class NET_VCA_FILTER_STRATEGY extends HIKSDKStructure {
        public byte byStrategy;

        public byte[] byRes = new byte[11];
    }

    public static class NET_VCA_RULE_ALARM extends HIKSDKStructure {
        public int dwSize;

        public int dwRelativeTime;

        public int dwAbsTime;

        public NET_VCA_RULE_INFO struRuleInfo;

        public NET_VCA_TARGET_INFO struTargetInfo;

        public NET_VCA_DEV_INFO struDevInfo;

        public int dwPicDataLen;

        public byte byPicType;

        public byte byRelAlarmPicNum;

        public byte bySmart;

        public byte byPicTransType;

        public int dwAlarmID;

        public short wDevInfoIvmsChannelEx;

        public byte byRelativeTimeFlag;

        public byte byAppendInfoUploadEnabled;

        public Pointer pAppendInfo;

        public Pointer pImage;
    }

    public static class NET_DVR_SYSTEM_TIME extends HIKSDKStructure {
        public short wYear;

        public short wMonth;

        public short wDay;

        public short wHour;

        public short wMinute;

        public short wSecond;

        public short wMilliSec;

        public byte[] byRes = new byte[2];
    }

    public static class NET_AIOP_VIDEO_HEAD extends HIKSDKStructure {
        public int dwSize;

        public int dwChannel;

        public NET_DVR_SYSTEM_TIME struTime = new NET_DVR_SYSTEM_TIME();

        public byte[] szTaskID = new byte[64];

        public int dwAIOPDataSize;

        public int dwPictureSize;

        public byte[] szMPID = new byte[64];

        public Pointer pBufferAIOPData;

        public Pointer pBufferPicture;

        public byte byPictureMode;

        public byte[] byRes2 = new byte[3];

        public int dwPresetIndex;

        public byte[] byRes = new byte[176];
    }

    public static class NET_AIOP_PICTURE_HEAD extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_SYSTEM_TIME struTime = new NET_DVR_SYSTEM_TIME();

        public byte[] szPID = new byte[64];

        public int dwAIOPDataSize;

        public byte byStatus;

        public byte[] byRes1 = new byte[3];

        public byte[] szMPID = new byte[64];

        public Pointer pBufferAIOPData;

        public int dwPresetIndex;

        public byte[] byRes = new byte[180];
    }

    public static class NET_DVR_AI_PICTUR_UPLOAD extends HIKSDKStructure {
        public int dwSize;

        public byte[] szTaskID = new byte[64];

        public byte[] szPID = new byte[64];

        public byte[] byRes = new byte[128];
    }

    public static class NET_AIOP_POLLING_SNAP_HEAD extends HIKSDKStructure {
        public int dwSize;

        public int dwChannel;

        public NET_DVR_SYSTEM_TIME struTime = new NET_DVR_SYSTEM_TIME();

        public byte[] szTaskID = new byte[64];

        public int dwAIOPDataSize;

        public int dwPictureSize;

        public byte[] szMPID = new byte[64];

        public Pointer pBufferAIOPData;

        public Pointer pBufferPicture;

        public byte byPictureMode;

        public byte[] byRes2 = new byte[3];

        public int dwPresetIndex;

        public byte[] byRes = new byte[176];
    }

    public static class NET_AIOP_POLLING_VIDEO_HEAD extends HIKSDKStructure {
        public int dwSize;

        public int dwChannel;

        public NET_DVR_SYSTEM_TIME struTime;

        public byte[] szTaskID = new byte[64];

        public int dwAIOPDataSize;

        public int dwPictureSize;

        public byte[] szMPID = new byte[64];

        public Pointer pBufferAIOPData;

        public Pointer pBufferPicture;

        public byte byPictureMode;

        public byte[] byRes2 = new byte[3];

        public int dwPresetIndex;

        public byte[] byRes = new byte[176];
    }

    public static class NET_VCA_RULE_TRIGGER_PARAM extends HIKSDKStructure {
        public byte byTriggerMode;

        public byte byTriggerPoint;

        public byte[] byRes1 = new byte[2];

        public float fTriggerArea;

        public byte[] byRes2 = new byte[4];
    }

    public static class NET_VCA_ONE_RULE_V42 extends HIKSDKStructure {
        public byte byActive;

        public byte byEventPriority;

        public byte[] byRes1 = new byte[4];

        public short wEventType;

        public byte[] byRuleName = new byte[32];

        public NET_VCA_EVENT_UNION uEventParam;

        public NET_VCA_SIZE_FILTER struSizeFilter;

        public NET_DVR_SCHEDTIMEWEEK[] struAlarmTime = new NET_DVR_SCHEDTIMEWEEK[7];

        public NET_DVR_HANDLEEXCEPTION_V40 struAlarmHandleType;

        public int[] dwRelRecordChan = new int[64];

        public short wAlarmDelay;

        public byte[] byRes2 = new byte[2];

        public NET_VCA_FILTER_STRATEGY struFilterStrategy;

        public NET_VCA_RULE_TRIGGER_PARAM struTriggerParam;

        public byte[] byRes = new byte[32];
    }

    public static class NET_DVR_PTZ_POSITION extends HIKSDKStructure {
        public byte byEnable;

        public byte[] byRes1 = new byte[3];

        public byte[] byPtzPositionName = new byte[32];

        public NET_DVR_PTZPOS struPtzPos;

        public byte[] byRes2 = new byte[40];
    }

    public static class NET_VCA_RULECFG_V42 extends HIKSDKStructure {
        public int dwSize;

        public byte byPicProType;

        public byte byUpLastAlarm;

        public byte byPicRecordEnable;

        public byte byRes1;

        public NET_DVR_JPEGPARA struPicParam;

        public NET_VCA_ONE_RULE_V42[] struRule = new NET_VCA_ONE_RULE_V42[16];

        public short[] wRelSnapChan = new short[3];

        public byte byTrackEnable;

        public byte byRes2;

        public NET_DVR_PTZ_POSITION struPTZPosition;

        public short wTrackDuration;

        public short wIntervalTime;

        public short wHeightLimit;

        public byte[] byRes = new byte[58];
    }

    public static class NET_DVR_CID_ALARM extends HIKSDKStructure {
        public int dwSize;

        public byte[] sCIDCode = new byte[4];

        public byte[] sCIDDescribe = new byte[32];

        public NET_DVR_TIME_EX struTriggerTime = new NET_DVR_TIME_EX();

        public NET_DVR_TIME_EX struUploadTime = new NET_DVR_TIME_EX();

        public byte[] sCenterAccount = new byte[6];

        public byte byReportType;

        public byte byUserType;

        public byte[] sUserName = new byte[32];

        public short wKeyUserNo;

        public byte byKeypadNo;

        public byte bySubSysNo;

        public short wDefenceNo;

        public byte byVideoChanNo;

        public byte byDiskNo;

        public short wModuleAddr;

        public byte byCenterType;

        public byte byRes1;

        public byte[] sCenterAccountV40 = new byte[32];

        public byte[] byDevSerialNo = new byte[9];

        public byte byRepeaterNo;

        public short wRemoteCtrllerUserNo;

        public int dwIOTChannelNo;

        public byte[] byRes2 = new byte[12];
    }

    public static class NET_DVR_SENSOR_ALARM extends HIKSDKStructure {
        public int dwSize;

        public int dwAbsTime;

        public byte[] byName = new byte[32];

        public byte bySensorChannel;

        public byte byType;

        public byte byAlarmType;

        public byte byAlarmMode;

        public float fValue;

        public float fOriginalValue;

        public byte[] byRes2 = new byte[28];
    }

    public static class NET_DVR_SWITCH_ALARM extends HIKSDKStructure {
        public int dwSize;

        public byte[] byName = new byte[32];

        public short wSwitchChannel;

        public byte byAlarmType;

        public byte[] byRes = new byte[41];
    }

    public static class NET_DVR_ALARMHOST_EXCEPTION_ALARM extends HIKSDKStructure {
        public int dwSize;

        public int dwExceptionType;

        public byte[] byRes = new byte[36];
    }

    public static class NET_DVR_ALARMHOST_POINT_VALUE extends HIKSDKStructure {
        public byte byChanType;

        public byte byPointType;

        public byte[] byRes1 = new byte[2];

        public int dwChanNo;

        public int dwSubChanNo;

        public int dwVariableNo;

        public int dwPointNo;

        public int iValue;

        public int iValueEx;

        public byte[] byRes = new byte[12];
    }

    public static class NET_DVR_ALARMHOST_DATA_UNION extends HIKSDKStructure {
        public byte[] byLength = new byte[40];

        public NET_DVR_ALARMHOST_POINT_VALUE struPointValue;
    }

    public static class NET_DVR_ALARMHOST_DATA_UPLOAD extends HIKSDKStructure {
        public int dwSize;

        public byte byDataType;

        public byte[] byRes1 = new byte[3];

        public NET_DVR_ALARMHOST_DATA_UNION struAlarmData;

        public byte[] byRes2 = new byte[32];
    }

    public static class NET_DVR_PLATE_INFO extends HIKSDKStructure {
        public byte byPlateType;

        public byte byColor;

        public byte byBright;

        public byte byLicenseLen;

        public byte byEntireBelieve;

        public byte byRegion;

        public byte byCountry;

        public byte byArea;

        public byte byPlateSize;

        public byte byAddInfoFlag;

        public short wCRIndex;

        public byte[] byRes = new byte[12];

        public byte[] sPlateCategory = new byte[8];

        public int dwXmlLen;

        public Pointer pXmlBuf;

        public NET_VCA_RECT struPlateRect = new NET_VCA_RECT();

        public byte[] sLicense = new byte[16];

        public byte[] byBelieve = new byte[16];
    }

    public static class NET_DVR_VEHICLE_INFO extends HIKSDKStructure {
        public int dwIndex;

        public byte byVehicleType;

        public byte byColorDepth;

        public byte byColor;

        public byte byRadarState;

        public short wSpeed;

        public short wLength;

        public byte byIllegalType;

        public byte byVehicleLogoRecog;

        public byte byVehicleSubLogoRecog;

        public byte byVehicleModel;

        public byte[] byCustomInfo = new byte[16];

        public short wVehicleLogoRecog;

        public byte byIsParking;

        public byte byRes;

        public int dwParkingTime;

        public byte[] byRes3 = new byte[8];
    }

    public static class NET_DVR_MANUALSNAP extends HIKSDKStructure {
        public byte byOSDEnable;

        public byte byLaneNo;

        public byte byChannel;

        public byte[] byRes = new byte[21];
    }

    public static class NET_DVR_PLATE_RESULT extends HIKSDKStructure {
        public int dwSize;

        public byte byResultType;

        public byte byChanIndex;

        public short wAlarmRecordID;

        public int dwRelativeTime;

        public byte[] byAbsTime = new byte[32];

        public int dwPicLen;

        public int dwPicPlateLen;

        public int dwVideoLen;

        public byte byTrafficLight;

        public byte byPicNum;

        public byte byDriveChan;

        public byte byVehicleType;

        public int dwBinPicLen;

        public int dwCarPicLen;

        public int dwFarCarPicLen;

        public Pointer pBuffer3;

        public Pointer pBuffer4;

        public Pointer pBuffer5;

        public byte[] byRes3 = new byte[8];

        public NET_DVR_PLATE_INFO struPlateInfo;

        public NET_DVR_VEHICLE_INFO struVehicleInfo;

        public Pointer pBuffer1;

        public Pointer pBuffer2;
    }

    public static class NET_DVR_TIME_V30 extends HIKSDKStructure {
        public short wYear;

        public byte byMonth;

        public byte byDay;

        public byte byHour;

        public byte byMinute;

        public byte bySecond;

        public byte byRes;

        public short wMilliSec;

        public byte[] byRes1 = new byte[2];
    }

    public static class NET_ITS_PICTURE_INFO extends HIKSDKStructure {
        public int dwDataLen;

        public byte byType;

        public byte byDataType;

        public byte byCloseUpType;

        public byte byPicRecogMode;

        public int dwRedLightTime;

        public byte[] byAbsTime = new byte[32];

        public NET_VCA_RECT struPlateRect = new NET_VCA_RECT();

        public NET_VCA_RECT struPlateRecgRect = new NET_VCA_RECT();

        public Pointer pBuffer;

        public int dwUTCTime;

        public byte byCompatibleAblity;

        public byte byTimeDiffFlag;

        public byte cTimeDifferenceH;

        public byte cTimeDifferenceM;

        public byte[] byRes2 = new byte[4];
    }

    public static class NET_ITS_PLATE_RESULT extends HIKSDKStructure {
        public int dwSize;

        public int dwMatchNo;

        public byte byGroupNum;

        public byte byPicNo;

        public byte bySecondCam;

        public byte byFeaturePicNo;

        public byte byDriveChan;

        public byte byVehicleType;

        public byte byDetSceneID;

        public byte byVehicleAttribute;

        public short wIllegalType;

        public byte[] byIllegalSubType = new byte[8];

        public byte byPostPicNo;

        public byte byChanIndex;

        public short wSpeedLimit;

        public byte byChanIndexEx;

        public byte byRes2;

        public NET_DVR_PLATE_INFO struPlateInfo = new NET_DVR_PLATE_INFO();

        public NET_DVR_VEHICLE_INFO struVehicleInfo = new NET_DVR_VEHICLE_INFO();

        public byte[] byMonitoringSiteID = new byte[48];

        public byte[] byDeviceID = new byte[48];

        public byte byDir;

        public byte byDetectType;

        public byte byRelaLaneDirectionType;

        public byte byCarDirectionType;

        public int dwCustomIllegalType;

        public Pointer pIllegalInfoBuf;

        public byte byIllegalFromatType;

        public byte byPendant;

        public byte byDataAnalysis;

        public byte byYellowLabelCar;

        public byte byDangerousVehicles;

        public byte byPilotSafebelt;

        public byte byCopilotSafebelt;

        public byte byPilotSunVisor;

        public byte byCopilotSunVisor;

        public byte byPilotCall;

        public byte byBarrierGateCtrlType;

        public byte byAlarmDataType;

        public NET_DVR_TIME_V30 struSnapFirstPicTime = new NET_DVR_TIME_V30();

        public int dwIllegalTime;

        public int dwPicNum;

        public NET_ITS_PICTURE_INFO[] struPicInfo = new NET_ITS_PICTURE_INFO[6];
    }

    public static class NET_ITS_PARK_VEHICLE extends HIKSDKStructure {
        public int dwSize;

        public byte byGroupNum;

        public byte byPicNo;

        public byte byLocationNum;

        public byte byParkError;

        public byte[] byParkingNo = new byte[16];

        public byte byLocationStatus;

        public byte bylogicalLaneNum;

        public short wUpLoadType;

        public byte[] byRes1 = new byte[4];

        public int dwChanIndex;

        public NET_DVR_PLATE_INFO struPlateInfo;

        public NET_DVR_VEHICLE_INFO struVehicleInfo;

        public byte[] byMonitoringSiteID = new byte[48];

        public byte[] byDeviceID = new byte[48];

        public int dwPicNum;

        public NET_ITS_PICTURE_INFO[] struPicInfo = new NET_ITS_PICTURE_INFO[2];

        public byte[] byRes2 = new byte[256];
    }

    public static class NET_DVR_SNAPCFG extends HIKSDKStructure {
        public int dwSize;

        public byte byRelatedDriveWay;

        public byte bySnapTimes;

        public short wSnapWaitTime;

        public short[] wIntervalTime = new short[4];

        public int dwSnapVehicleNum;

        public NET_DVR_JPEGPARA struJpegPara;

        public byte[] byRes2 = new byte[16];
    }

    public static class NET_DVR_BARRIERGATE_CFG extends HIKSDKStructure {
        public int dwSize;

        public int dwChannel;

        public byte byLaneNo;

        public byte byBarrierGateCtrl;

        public byte byEntranceNo;

        public byte byUnlock;

        public byte[] byRes = new byte[12];
    }

    public static class NET_DVR_AGEGROUP_PARAM extends HIKSDKStructure {
        public int dwTeenage;

        public int dwYouth;

        public int dwMidLife;

        public int dwElderly;

        public int dwChild;

        public int dwAdolescent;

        public int dwPrime;

        public int dwMidage;

        public byte[] byRes = new byte[48];
    }

    public static class NET_DVR_SEXGROUP_PARAM extends HIKSDKStructure {
        public int dwMale;

        public int dwFemale;

        public byte[] byRes = new byte[64];
    }

    public static class NET_DVR_PROGRAM_INFO extends HIKSDKStructure {
        public int dwProgramNo;

        public byte[] sProgramName = new byte[32];

        public byte[] byRes = new byte[16];
    }

    public static class NET_DVR_FACECAPTURE_STATISTICS_RESULT extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_TIME_EX struStartTime;

        public NET_DVR_TIME_EX struEndTime;

        public byte byStatType;

        public byte[] byRes = new byte[7];

        public int dwPeopleNum;

        public NET_DVR_AGEGROUP_PARAM struAgeGroupParam;

        public NET_DVR_SEXGROUP_PARAM struSexGroupParam;

        public NET_DVR_PROGRAM_INFO struProgramInfo;

        public byte[] byRes1 = new byte[76];
    }

    public static class NET_DVR_TRAFFIC_DATA_QUERY_COND extends HIKSDKStructure {
        public int dwSize;

        public int dwQueryCond;

        public int dwChannel;

        public NET_DVR_TIME_V30 struStartTime;

        public NET_DVR_TIME_V30 struEndTime;

        public byte[] sLicense = new byte[16];

        public int dwPlateType;

        public int dwPlateColor;

        public int dwVehicleColor;

        public int dwVehicleType;

        public int dwIllegalType;

        public int dwEventType;

        public int dwForensiceType;

        public short wVehicleLogoRecog;

        public byte byLaneNo;

        public byte byDirection;

        public short wMinSpeed;

        public short wMaxSpeed;

        public byte byDataType;

        public byte byExecuteCtrl;

        public byte[] byRes = new byte[254];
    }

    public static class NET_DVR_TRAFFIC_DATA_QUERY_RESULT extends HIKSDKStructure {
        public int dwSize;

        public int dwChannel;

        public byte[] sLicense = new byte[16];

        public int dwPlateType;

        public int dwPlateColor;

        public int dwVehicleColor;

        public int dwVehicleType;

        public int dwIllegalType;

        public int dwEventType;

        public int dwForensiceType;

        public short wVehicleLogoRecog;

        public byte byLaneNo;

        public byte byDirection;

        public short wSpeed;

        public byte byDataType;

        public byte[] byRes = new byte[253];

        public NET_DVR_TRAFFIC_PICTURE_PARAM[] struTrafficPic = new NET_DVR_TRAFFIC_PICTURE_PARAM[8];
    }

    public static class NET_DVR_TRAFFIC_PICTURE_PARAM extends HIKSDKStructure {
        public NET_DVR_TIME_V30 struRelativeTime = new NET_DVR_TIME_V30();

        public NET_DVR_TIME_V30 struAbsTime = new NET_DVR_TIME_V30();

        public byte[] szPicName = new byte[64];

        public byte byPicType;

        public byte[] byRes = new byte[63];
    }

    public static class NET_DVR_VEHICLE_CONTROL_COND extends HIKSDKStructure {
        public int dwChannel;

        public int dwOperateType;

        public byte[] sLicense = new byte[16];

        public byte[] sCardNo = new byte[48];

        public byte byListType;

        public byte[] byRes1 = new byte[3];

        public int dwDataIndex;

        public byte[] byRes = new byte[116];
    }

    public static class NET_DVR_VEHICLE_CONTROL_LIST_INFO extends HIKSDKStructure {
        public int dwSize;

        public int dwChannel;

        public int dwDataIndex;

        public byte[] sLicense = new byte[16];

        public byte byListType;

        public byte byPlateType;

        public byte byPlateColor;

        public byte[] byRes = new byte[21];

        public byte[] sCardNo = new byte[48];

        public NET_DVR_TIME_V30 struStartTime = new NET_DVR_TIME_V30();

        public NET_DVR_TIME_V30 struStopTime = new NET_DVR_TIME_V30();

        public byte[] sOperateIndex = new byte[32];

        public byte[] byRes1 = new byte[224];
    }

    public static class NET_DVR_VEHICLE_CONTROL_ALARM extends HIKSDKStructure {
        public int dwSize;

        public byte byListType;

        public byte byPlateType;

        public byte byPlateColor;

        public byte byRes1;

        public byte[] sLicense = new byte[16];

        public byte[] sCardNo = new byte[48];

        public NET_DVR_TIME_V30 struAlarmTime = new NET_DVR_TIME_V30();

        public int dwChannel;

        public int dwPicDataLen;

        public byte byPicType;

        public byte byPicTransType;

        public byte[] byRes3 = new byte[2];

        public Pointer pPicData;

        public byte[] byRes2 = new byte[48];
    }

    public static class NET_DVR_LEDDISPLAY_CFG extends HIKSDKStructure {
        public int dwSize;

        public byte[] sDisplayInfo = new byte[512];

        public byte byDisplayMode;

        public byte bySpeedType;

        public byte byShowPlateEnable;

        public byte byRes1;

        public int dwShowTime;

        public byte[] byRes = new byte[128];
    }

    public static class NET_DVR_VOICEBROADCAST_CFG extends HIKSDKStructure {
        public int dwSize;

        public byte[] sInfo = new byte[128];

        public byte byBroadcastNum;

        public byte byIntervalTime;

        public byte[] byRes = new byte[126];
    }

    public static class NET_DVR_CHARGEACCOUNT_CFG extends HIKSDKStructure {
        public int dwSize;

        public float fAccount;

        public byte[] byRes = new byte[128];
    }

    public static class NET_DVR_DOOR_CFG extends HIKSDKStructure {
        public int dwSize;

        public byte[] byDoorName = new byte[32];

        public byte byMagneticType;

        public byte byOpenButtonType;

        public byte byOpenDuration;

        public byte byDisabledOpenDuration;

        public byte byMagneticAlarmTimeout;

        public byte byEnableDoorLock;

        public byte byEnableLeaderCard;

        public byte byLeaderCardMode;

        public int dwLeaderCardOpenDuration;

        public byte[] byStressPassword = new byte[8];

        public byte[] bySuperPassword = new byte[8];

        public byte[] byUnlockPassword = new byte[8];

        public byte byUseLocalController;

        public byte byRes1;

        public short wLocalControllerID;

        public short wLocalControllerDoorNumber;

        public short wLocalControllerStatus;

        public byte byLockInputCheck;

        public byte byLockInputType;

        public byte byDoorTerminalMode;

        public byte byOpenButton;

        public byte byLadderControlDelayTime;

        public byte[] byRes2 = new byte[43];
    }

    public static class NET_DVR_DOOR_STATUS_PLAN extends HIKSDKStructure {
        public int dwSize;

        public int dwTemplateNo;

        public byte[] byRes = new byte[64];
    }

    public static class NET_DVR_EVENT_CARD_LINKAGE_COND extends HIKSDKStructure {
        public int dwSize;

        public int dwEventID;

        public short wLocalControllerID;

        public byte[] byRes = new byte[106];
    }

    public static class NET_DVR_EVENT_CARD_LINKAGE_CFG_V50 extends HIKSDKStructure {
        public int dwSize;

        public byte byProMode;

        public byte[] byRes1 = new byte[3];

        public int dwEventSourceID;

        public NET_DVR_EVETN_CARD_LINKAGE_UNION uLinkageInfo = new NET_DVR_EVETN_CARD_LINKAGE_UNION();

        public byte[] byAlarmout = new byte[512];

        public byte[] byRes2 = new byte[32];

        public byte[] byOpenDoor = new byte[256];

        public byte[] byCloseDoor = new byte[256];

        public byte[] byNormalOpen = new byte[256];

        public byte[] byNormalClose = new byte[256];

        public byte byMainDevBuzzer;

        public byte byCapturePic;

        public byte byRecordVideo;

        public byte[] byRes3 = new byte[29];

        public byte[] byReaderBuzzer = new byte[512];

        public byte[] byAlarmOutClose = new byte[512];

        public byte[] byAlarmInSetup = new byte[512];

        public byte[] byAlarmInClose = new byte[512];

        public byte[] byRes = new byte[500];
    }

    public static class NET_DVR_EVENT_LINKAGE_INFO extends HIKSDKStructure {
        public short wMainEventType;

        public short wSubEventType;

        public byte[] byRes = new byte[28];
    }

    public static class NET_DVR_EVETN_CARD_LINKAGE_UNION extends Union {
        public byte[] byCardNo = new byte[32];

        public NET_DVR_EVENT_LINKAGE_INFO struEventLinkage;

        public byte[] byMACAddr = new byte[6];

        public byte[] byEmployeeNo = new byte[32];
    }

    public static class NET_DVR_CARD_CFG_COND extends HIKSDKStructure {
        public int dwSize;

        public int dwCardNum;

        public byte byCheckCardNo;

        public byte[] ibyRes = new byte[31];
    }

    public static class NET_DVR_CARD_CFG_SEND_DATA extends HIKSDKStructure {
        public int dwSize;

        public byte[] byCardNo = new byte[32];

        public byte[] byRes = new byte[16];
    }

    public static class CARDRIGHTPLAN extends HIKSDKStructure {
        public byte[] byRightPlan = new byte[4];
    }

    public static class NET_DVR_CARD_CFG extends HIKSDKStructure {
        public int dwSize;

        public int dwModifyParamType;

        public byte[] byCardNo = new byte[32];

        public byte byCardValid;

        public byte byCardType;

        public byte byLeaderCard;

        public byte byRes1;

        public int dwDoorRight;

        public NET_DVR_VALID_PERIOD_CFG struValid;

        public int dwBelongGroup;

        public byte[] byCardPassword = new byte[8];

        public CARDRIGHTPLAN[] byCardRightPlan = new CARDRIGHTPLAN[32];

        public int dwMaxSwipeTime;

        public int dwSwipeTime;

        public short wRoomNumber;

        public short wFloorNumber;

        public byte[] byRes2 = new byte[20];
    }

    public static class CARDRIGHTPLAN_WORD extends HIKSDKStructure {
        public short[] wRightPlan = new short[4];
    }

    public static class NET_DVR_CARD_CFG_V50 extends HIKSDKStructure {
        public int dwSize;

        public int dwModifyParamType;

        public byte[] byCardNo = new byte[32];

        public byte byCardValid;

        public byte byCardType;

        public byte byLeaderCard;

        public byte byRes1;

        public byte[] byDoorRight = new byte[256];

        public NET_DVR_VALID_PERIOD_CFG struValid;

        public byte[] byBelongGroup = new byte[128];

        public byte[] byCardPassword = new byte[8];

        public CARDRIGHTPLAN_WORD[] wCardRightPlan = new CARDRIGHTPLAN_WORD[256];

        public int dwMaxSwipeTime;

        public int dwSwipeTime;

        public short wRoomNumber;

        public short wFloorNumber;

        public int dwEmployeeNo;

        public byte[] byName = new byte[32];

        public short wDepartmentNo;

        public short wSchedulePlanNo;

        public byte bySchedulePlanType;

        public byte byRightType;

        public byte[] byRes2 = new byte[2];

        public int dwLockID;

        public byte[] byLockCode = new byte[8];

        public byte[] byRoomCode = new byte[8];

        public int dwCardRight;

        public int dwPlanTemplate;

        public int dwCardUserId;

        public byte byCardModelType;

        public byte[] byRes3 = new byte[83];
    }

    public static class NET_DVR_VALID_PERIOD_CFG extends HIKSDKStructure {
        public byte byEnable;

        public byte[] byRes1 = new byte[3];

        public NET_DVR_TIME_EX struBeginTime;

        public NET_DVR_TIME_EX struEndTime;

        public byte byTimeType;

        public byte[] byRes2 = new byte[31];
    }

    public static class NET_DVR_ID_CARD_INFO_EXTEND extends HIKSDKStructure {
        public byte byRemoteCheck;

        public byte byThermometryUnit;

        public byte byIsAbnomalTemperature;

        public byte byRes2;

        public float fCurrTemperature;

        public NET_VCA_POINT struRegionCoordinates = new NET_VCA_POINT();

        public int dwQRCodeInfoLen;

        public int dwVisibleLightDataLen;

        public int dwThermalDataLen;

        public Pointer pQRCodeInfo;

        public Pointer pVisibleLightData;

        public Pointer pThermalData;

        public byte[] byRes = new byte[1024];
    }

    public static class NET_DVR_ID_CARD_INFO_ALARM extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_ID_CARD_INFO struIDCardCfg = new NET_DVR_ID_CARD_INFO();

        public int dwMajor;

        public int dwMinor;

        public NET_DVR_TIME_V30 struSwipeTime = new NET_DVR_TIME_V30();

        public byte[] byNetUser = new byte[16];

        public NET_DVR_IPADDR struRemoteHostAddr = new NET_DVR_IPADDR();

        public int dwCardReaderNo;

        public int dwDoorNo;

        public int dwPicDataLen;

        public Pointer pPicData;

        public byte byCardType;

        public byte byDeviceNo;

        public byte byMask;

        public byte byCurrentEvent;

        public int dwFingerPrintDataLen;

        public Pointer pFingerPrintData;

        public int dwCapturePicDataLen;

        public Pointer pCapturePicData;

        public int dwCertificatePicDataLen;

        public Pointer pCertificatePicData;

        public byte byCardReaderKind;

        public byte[] byRes3 = new byte[2];

        public byte byIDCardInfoExtend;

        public Pointer pIDCardInfoExtend;

        public int dwSerialNo;

        public byte[] byRes = new byte[168];
    }

    public static class NET_DVR_CARD_READER_CFG_V50 extends HIKSDKStructure {
        public int dwSize;

        public byte byEnable;

        public byte byCardReaderType;

        public byte byOkLedPolarity;

        public byte byErrorLedPolarity;

        public byte byBuzzerPolarity;

        public byte bySwipeInterval;

        public byte byPressTimeout;

        public byte byEnableFailAlarm;

        public byte byMaxReadCardFailNum;

        public byte byEnableTamperCheck;

        public byte byOfflineCheckTime;

        public byte byFingerPrintCheckLevel;

        public byte byUseLocalController;

        public byte byRes1;

        public short wLocalControllerID;

        public short wLocalControllerReaderID;

        public short wCardReaderChannel;

        public byte byFingerPrintImageQuality;

        public byte byFingerPrintContrastTimeOut;

        public byte byFingerPrintRecogizeInterval;

        public byte byFingerPrintMatchFastMode;

        public byte byFingerPrintModuleSensitive;

        public byte byFingerPrintModuleLightCondition;

        public byte byFaceMatchThresholdN;

        public byte byFaceQuality;

        public byte byFaceRecogizeTimeOut;

        public byte byFaceRecogizeInterval;

        public short wCardReaderFunction;

        public byte[] byCardReaderDescription = new byte[32];

        public short wFaceImageSensitometry;

        public byte byLivingBodyDetect;

        public byte byFaceMatchThreshold1;

        public short wBuzzerTime;

        public byte byFaceMatch1SecurityLevel;

        public byte byFaceMatchNSecurityLevel;

        public byte byEnvirMode;

        public byte byLiveDetLevelSet;

        public byte byLiveDetAntiAttackCntLimit;

        public byte byEnableLiveDetAntiAttack;

        public byte bySupportDelFPByID;

        public byte byFaceContrastMotionDetLevel;

        public byte byDayFaceMatchThresholdN;

        public byte byNightFaceMatchThresholdN;

        public byte byFaceRecogizeEnable;

        public byte byBlockListMatchThreshold;

        public byte byRes3;

        public byte byDefaultVerifyMode;

        public int dwFingerPrintCapacity;

        public int dwFingerPrintNum;

        public byte byEnableFingerPrintNum;

        public byte[] byRes = new byte[231];
    }

    public static class NET_DVR_CARD_COND extends HIKSDKStructure {
        public int dwSize;

        public int dwCardNum;

        public byte[] byRes = new byte[64];
    }

    public static class NET_DVR_CARD_SEND_DATA extends HIKSDKStructure {
        public int dwSize;

        public byte[] byCardNo = new byte[32];

        public byte[] byRes = new byte[16];
    }

    public static class NET_DVR_CARD_RECORD extends HIKSDKStructure {
        public int dwSize;

        public byte[] byCardNo = new byte[32];

        public byte byCardType;

        public byte byLeaderCard;

        public byte byUserType;

        public byte byRes1;

        public byte[] byDoorRight = new byte[256];

        public NET_DVR_VALID_PERIOD_CFG struValid = new NET_DVR_VALID_PERIOD_CFG();

        public byte[] byBelongGroup = new byte[128];

        public byte[] byCardPassword = new byte[8];

        public short[] wCardRightPlan = new short[256];

        public int dwMaxSwipeTimes;

        public int dwSwipeTimes;

        public int dwEmployeeNo;

        public byte[] byName = new byte[32];

        public int dwCardRight;

        public byte[] byRes = new byte[256];
    }

    public static class NET_DVR_CARD_STATUS extends HIKSDKStructure {
        public int dwSize;

        public byte[] byCardNo = new byte[32];

        public int dwErrorCode;

        public byte byStatus;

        public byte[] byRes = new byte[23];
    }

    public static class NET_DVR_FACE_COND extends HIKSDKStructure {
        public int dwSize;

        public byte[] byCardNo = new byte[32];

        public int dwFaceNum;

        public int dwEnableReaderNo;

        public byte[] byRes = new byte[124];
    }

    public static class NET_DVR_FACE_RECORD extends HIKSDKStructure {
        public int dwSize;

        public byte[] byCardNo = new byte[32];

        public int dwFaceLen;

        public Pointer pFaceBuffer;

        public byte[] byRes = new byte[128];
    }

    public static class NET_DVR_FACE_STATUS extends HIKSDKStructure {
        public int dwSize;

        public byte[] byCardNo = new byte[32];

        public byte[] byErrorMsg = new byte[32];

        public int dwReaderNo;

        public byte byRecvStatus;

        public byte[] byRes = new byte[131];
    }

    public static class NET_DVR_FINGERPRINT_COND extends HIKSDKStructure {
        public int dwSize;

        public int dwFingerprintNum;

        public byte[] byCardNo = new byte[32];

        public int dwEnableReaderNo;

        public byte byFingerPrintID;

        public byte[] byRes = new byte[131];
    }

    public static class NET_DVR_FINGERPRINT_RECORD extends HIKSDKStructure {
        public int dwSize;

        public byte[] byCardNo = new byte[32];

        public int dwFingerPrintLen;

        public int dwEnableReaderNo;

        public byte byFingerPrintID;

        public byte byFingerType;

        public byte[] byRes1 = new byte[30];

        public byte[] byFingerData = new byte[768];

        public byte[] byRes = new byte[96];
    }

    public static class NET_DVR_FINGERPRINT_STATUS extends HIKSDKStructure {
        public int dwSize;

        public byte[] byCardNo = new byte[32];

        public byte byCardReaderRecvStatus;

        public byte byFingerPrintID;

        public byte byFingerType;

        public byte byRecvStatus;

        public byte[] byErrorMsg = new byte[32];

        public int dwCardReaderNo;

        public byte[] byRes = new byte[20];
    }

    public static class NET_DVR_CAPTURE_FINGERPRINT_COND extends HIKSDKStructure {
        public int dwSize;

        public byte byFingerPrintPicType;

        public byte byFingerNo;

        public byte[] byRes = new byte[126];
    }

    public static class NET_DVR_CAPTURE_FINGERPRINT_CFG extends HIKSDKStructure {
        public int dwSize;

        public int dwFingerPrintDataSize;

        public byte[] byFingerData = new byte[768];

        public int dwFingerPrintPicSize;

        public Pointer pFingerPrintPicBuffer;

        public byte byFingerNo;

        public byte byFingerPrintQuality;

        public byte[] byRes = new byte[62];
    }

    public static class NET_DVR_FINGER_PRINT_INFO_CTRL_V50 extends HIKSDKStructure {
        public int dwSize;

        public byte byMode;

        public byte[] byRes1 = new byte[3];

        public NET_DVR_DEL_FINGER_PRINT_MODE_V50 struProcessMode;

        public byte[] byRes = new byte[64];
    }

    public static class NET_DVR_DEL_FINGER_PRINT_MODE_V50 extends Union {
        public byte[] uLen = new byte[588];

        public NET_DVR_FINGER_PRINT_BYCARD_V50 struByCard;

        public NET_DVR_FINGER_PRINT_BYREADER_V50 struByReader;
    }

    public static class NET_DVR_FINGER_PRINT_BYREADER_V50 extends HIKSDKStructure {
        public int dwCardReaderNo;

        public byte byClearAllCard;

        public byte[] byRes1 = new byte[3];

        public byte[] byCardNo = new byte[32];

        public byte[] byEmployeeNo = new byte[32];

        public byte[] byRes = new byte[516];
    }

    public static class NET_DVR_FINGER_PRINT_BYCARD_V50 extends HIKSDKStructure {
        public byte[] byCardNo = new byte[32];

        public byte[] byEnableCardReader = new byte[512];

        public byte[] byFingerPrintID = new byte[10];

        public byte[] byRes1 = new byte[2];

        public byte[] byEmployeeNo = new byte[32];
    }

    public static class NET_DVR_FACE_PARAM_CTRL extends HIKSDKStructure {
        public int dwSize;

        public byte byMode;

        public byte[] byRes1 = new byte[3];

        public NET_DVR_DEL_FACE_PARAM_MODE struProcessMode = new NET_DVR_DEL_FACE_PARAM_MODE();

        public byte[] byRes = new byte[64];

        public void read() {
            super.read();
            switch (this.byMode) {
                case 0:
                    this.struProcessMode.setType(NET_DVR_FACE_PARAM_BYCARD.class);
                    break;
                case 1:
                    this.struProcessMode.setType(NET_DVR_FACE_PARAM_BYREADER.class);
                    break;
            }
            this.struProcessMode.read();
        }

        public void write() {
            super.write();
            this.struProcessMode.write();
        }
    }

    public static class NET_DVR_FINGER_PRINT_INFO_CTRL extends HIKSDKStructure {
        public int dwSize;

        public byte byMode;

        public byte[] byRes1 = new byte[3];

        public NET_DVR_DEL_FINGER_PRINT_MODE struProcessMode = new NET_DVR_DEL_FINGER_PRINT_MODE();

        public byte[] byRes = new byte[64];

        public void read() {
            super.read();
            switch (this.byMode) {
                case 0:
                    this.struProcessMode.setType(NET_DVR_FINGER_PRINT_BYCARD.class);
                    break;
                case 1:
                    this.struProcessMode.setType(NET_DVR_FINGER_PRINT_BYREADER.class);
                    break;
            }
            this.struProcessMode.read();
        }

        public void write() {
            super.write();
            this.struProcessMode.write();
        }
    }

    public static class NET_DVR_DEL_FINGER_PRINT_MODE extends Union {
        public NET_DVR_FINGER_PRINT_BYCARD struByCard;

        public NET_DVR_FINGER_PRINT_BYREADER struByReader;
    }

    public static class NET_DVR_FINGER_PRINT_BYCARD extends HIKSDKStructure {
        public byte[] byCardNo = new byte[32];

        public byte[] byEnableCardReader = new byte[512];

        public byte[] byFaceID = new byte[2];

        public byte[] byRes1 = new byte[34];
    }

    public static class NET_DVR_FINGER_PRINT_BYREADER extends HIKSDKStructure {
        public int dwCardReaderNo;

        public byte byClearAllCard;

        public byte[] byRes1 = new byte[3];

        public byte[] byCardNo = new byte[32];

        public byte[] byRes = new byte[548];
    }

    public static class NET_DVR_ACS_CFG extends HIKSDKStructure {
        public int dwSize;

        public byte byRS485Backup;

        public byte byShowCapPic;

        public byte byShowCardNo;

        public byte byShowUserInfo;

        public byte byOverlayUserInfo;

        public byte byVoicePrompt;

        public byte byUploadCapPic;

        public byte bySaveCapPic;

        public byte byInputCardNo;

        public byte byEnableWifiDetect;

        public byte byEnable3G4G;

        public byte byProtocol;

        public byte[] byRes = new byte[500];
    }

    public static class NET_DVR_UPLOAD_ID_BLOCKLIST_COND extends HIKSDKStructure {
        public int dwSize;

        public int dwBlockListNum;

        public byte[] byRes = new byte[128];
    }

    public static class NET_DVR_UPLOAD_ID_BLOCKLIST_CFG extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_ID_CARD_INFO struIDCardCfg;

        public byte byBlockListValid;

        public byte[] byRes = new byte[127];
    }

    public static class NET_DVR_UPLOAD_ID_BLOCKLIST_STATUS extends HIKSDKStructure {
        public int dwSize;

        public byte[] byIDNum = new byte[32];

        public byte byStatus;

        public byte[] byRes = new byte[63];
    }

    public static class REMOTECONFIGSTATUS extends HIKSDKStructure {
        public byte[] byStatus = new byte[4];

        public byte[] byErrorCode = new byte[4];
    }

    public static class NET_DVR_UNLOCK_RECORD_INFO extends HIKSDKStructure {
        public byte byUnlockType;

        public byte[] byRes1 = new byte[3];

        public byte[] byControlSrc = new byte[32];

        public int dwPicDataLen;

        public Pointer pImage;

        public int dwCardUserID;

        public short nFloorNumber;

        public short wRoomNumber;

        public short wLockID;

        public byte[] byRes2 = new byte[2];

        public byte[] byLockName = new byte[32];

        public byte[] byEmployeeNo = new byte[32];

        public byte[] byRes = new byte[136];
    }

    public static class NET_DVR_NOTICEDATA_RECEIPT_INFO extends HIKSDKStructure {
        public byte[] byNoticeNumber = new byte[32];

        public byte[] byRes = new byte[224];
    }

    public static class NET_DVR_AUTH_INFO extends HIKSDKStructure {
        public byte byAuthResult;

        public byte byAuthType;

        public byte[] byRes1 = new byte[2];

        public byte[] byCardNo = new byte[32];

        public int dwPicDataLen;

        public Pointer pImage;

        public byte[] byRes = new byte[212];
    }

    public static class NET_DVR_UPLOAD_PLATE_INFO extends HIKSDKStructure {
        public byte[] sLicense = new byte[16];

        public byte byColor;

        public byte[] byRes = new byte[239];
    }

    public static class NET_DVR_SEND_CARD_INFO extends HIKSDKStructure {
        public byte[] byCardNo = new byte[32];

        public byte[] byRes = new byte[224];
    }

    public static class NET_DVR_ZONE_ALARM_INFO extends HIKSDKStructure {
        public byte[] byZoneName = new byte[32];

        public int dwZonendex;

        public byte byZoneType;

        public byte[] byRes = new byte[219];
    }

    public static class NET_DVR_VIDEO_INTERCOM_ALARM_INFO_UNION extends Union {
        public byte[] byLen = new byte[256];

        public NET_DVR_ZONE_ALARM_INFO struZoneAlarm = new NET_DVR_ZONE_ALARM_INFO();
    }

    public static class NET_DVR_VIDEO_INTERCOM_ALARM extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_TIME_EX struTime = new NET_DVR_TIME_EX();

        public byte[] byDevNumber = new byte[32];

        public byte byAlarmType;

        public byte[] byRes1 = new byte[3];

        public NET_DVR_VIDEO_INTERCOM_ALARM_INFO_UNION uAlarmInfo = new NET_DVR_VIDEO_INTERCOM_ALARM_INFO_UNION();

        public short wLockID;

        public byte[] byRes2 = new byte[254];
    }

    public static class NET_DVR_VIDEO_INTERCOM_EVENT_INFO_UINON extends Union {
        public byte[] byLen = new byte[256];

        public NET_DVR_UNLOCK_RECORD_INFO struUnlockRecord = new NET_DVR_UNLOCK_RECORD_INFO();

        public NET_DVR_NOTICEDATA_RECEIPT_INFO struNoticedataReceipt = new NET_DVR_NOTICEDATA_RECEIPT_INFO();

        public NET_DVR_AUTH_INFO struAuthInfo = new NET_DVR_AUTH_INFO();

        public NET_DVR_UPLOAD_PLATE_INFO struUploadPlateInfo = new NET_DVR_UPLOAD_PLATE_INFO();

        public NET_DVR_SEND_CARD_INFO struSendCardInfo = new NET_DVR_SEND_CARD_INFO();
    }

    public static class NET_DVR_VIDEO_INTERCOM_EVENT extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_TIME_EX struTime = new NET_DVR_TIME_EX();

        public byte[] byDevNumber = new byte[32];

        public byte byEventType;

        public byte byPicTransType;

        public byte[] byRes1 = new byte[2];

        public NET_DVR_VIDEO_INTERCOM_EVENT_INFO_UINON uEventInfo = new NET_DVR_VIDEO_INTERCOM_EVENT_INFO_UINON();

        public int dwIOTChannelNo;

        public byte[] byRes2 = new byte[252];
    }

    public static class NET_DVR_CONTROL_GATEWAY extends HIKSDKStructure {
        public int dwSize;

        public int dwGatewayIndex;

        public byte byCommand;

        public byte byLockType;

        public short wLockID;

        public byte[] byControlSrc = new byte[32];

        public byte byControlType;

        public byte[] byRes3 = new byte[3];

        public byte[] byPassword = new byte[16];

        public byte[] byRes2 = new byte[108];
    }

    public static class NET_DVR_NOTICE_PIC extends HIKSDKStructure {
        public Pointer pPicData;

        public int dwPicDataLen;

        public byte[] byRes = new byte[32];
    }

    public static class NET_DVR_NOTICE_DATA extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_TIME_EX struTime = new NET_DVR_TIME_EX();

        public byte[] byNoticeNumber = new byte[32];

        public byte[] byNoticeTheme = new byte[64];

        public byte[] byNoticeDetail = new byte[1024];

        public byte byLevel;

        public byte byPicNum;

        public byte[] byRes1 = new byte[2];

        public NET_DVR_NOTICE_PIC[] struNoticePic = new NET_DVR_NOTICE_PIC[6];

        public byte[] byRes2 = new byte[128];
    }

    public static class NET_DVR_DATE extends HIKSDKStructure {
        public short wYear;

        public byte byMonth;

        public byte byDay;
    }

    public static class NET_DVR_ID_CARD_INFO extends HIKSDKStructure {
        public int dwSize;

        public byte[] byName = new byte[128];

        public NET_DVR_DATE struBirth;

        public byte[] byAddr = new byte[280];

        public byte[] byIDNum = new byte[32];

        public byte[] byIssuingAuthority = new byte[128];

        public NET_DVR_DATE struStartDate;

        public NET_DVR_DATE struEndDate;

        public byte byTermOfValidity;

        public byte bySex;

        public byte byNation;

        public byte[] byRes = new byte[101];
    }

    public static class NET_DVR_ACS_EVENT_INFO_EXTEND_V20 extends HIKSDKStructure {
        public byte byRemoteCheck;

        public byte byThermometryUnit;

        public byte byIsAbnomalTemperature;

        public byte byRes2;

        public float fCurrTemperature;

        public NET_VCA_POINT struRegionCoordinates = new NET_VCA_POINT();

        public int dwQRCodeInfoLen;

        public int dwVisibleLightDataLen;

        public int dwThermalDataLen;

        public Pointer pQRCodeInfo;

        public Pointer pVisibleLightData;

        public Pointer pThermalData;

        public byte[] byRes = new byte[1024];
    }

    public static class NET_DVR_ACS_ALARM_INFO extends HIKSDKStructure {
        public int dwSize;

        public int dwMajor;

        public int dwMinor;

        public NET_DVR_TIME struTime = new NET_DVR_TIME();

        public byte[] sNetUser = new byte[16];

        public NET_DVR_IPADDR struRemoteHostAddr = new NET_DVR_IPADDR();

        public NET_DVR_ACS_EVENT_INFO struAcsEventInfo = new NET_DVR_ACS_EVENT_INFO();

        public int dwPicDataLen;

        public Pointer pPicData;

        public short wInductiveEventType;

        public byte byPicTransType;

        public byte byRes1;

        public int dwIOTChannelNo;

        public Pointer pAcsEventInfoExtend;

        public byte byAcsEventInfoExtend;

        public byte byTimeType;

        public byte byRes2;

        public byte byAcsEventInfoExtendV20;

        public Pointer pAcsEventInfoExtendV20;

        public byte[] byRes = new byte[4];
    }

    public static class NET_DVR_ACS_EVENT_INFO extends HIKSDKStructure {
        public int dwSize;

        public byte[] byCardNo = new byte[32];

        public byte byCardType;

        public byte byAllowListNo;

        public byte byReportChannel;

        public byte byCardReaderKind;

        public int dwCardReaderNo;

        public int dwDoorNo;

        public int dwVerifyNo;

        public int dwAlarmInNo;

        public int dwAlarmOutNo;

        public int dwCaseSensorNo;

        public int dwRs485No;

        public int dwMultiCardGroupNo;

        public short wAccessChannel;

        public byte byDeviceNo;

        public byte byDistractControlNo;

        public int dwEmployeeNo;

        public short wLocalControllerID;

        public byte byInternetAccess;

        public byte byType;

        public byte[] byMACAddr = new byte[6];

        public byte bySwipeCardType;

        public byte byMask;

        public int dwSerialNo;

        public byte byChannelControllerID;

        public byte byChannelControllerLampID;

        public byte byChannelControllerIRAdaptorID;

        public byte byChannelControllerIREmitterID;

        public byte byHelmet;

        public byte[] byRes = new byte[3];
    }

    public static class NET_DVR_ACS_EVENT_INFO_EXTEND extends HIKSDKStructure {
        public int dwFrontSerialNo;

        public byte byUserType;

        public byte byCurrentVerifyMode;

        public byte byCurrentEvent;

        public byte byPurePwdVerifyEnable;

        public byte[] byEmployeeNo = new byte[32];

        public byte byAttendanceStatus;

        public byte byStatusValue;

        public byte[] byRes2 = new byte[2];

        public byte[] byUUID = new byte[36];

        public byte[] byDeviceName = new byte[64];

        public byte[] byRes = new byte[24];
    }

    public static class NET_DVR_ACS_EVENT_DETAIL extends HIKSDKStructure {
        public int dwSize;

        public byte[] byCardNo = new byte[32];

        public byte byCardType;

        public byte byAllowListNo;

        public byte byReportChannel;

        public byte byCardReaderKind;

        public int dwCardReaderNo;

        public int dwDoorNo;

        public int dwVerifyNo;

        public int dwAlarmInNo;

        public int dwAlarmOutNo;

        public int dwCaseSensorNo;

        public int dwRs485No;

        public int dwMultiCardGroupNo;

        public short wAccessChannel;

        public byte byDeviceNo;

        public byte byDistractControlNo;

        public int dwEmployeeNo;

        public short wLocalControllerID;

        public byte byInternetAccess;

        public byte byType;

        public byte[] byMACAddr = new byte[6];

        public byte bySwipeCardType;

        public byte byEventAttribute;

        public int dwSerialNo;

        public byte byChannelControllerID;

        public byte byChannelControllerLampID;

        public byte byChannelControllerIRAdaptorID;

        public byte byChannelControllerIREmitterID;

        public int dwRecordChannelNum;

        public Pointer pRecordChannelData;

        public byte byUserType;

        public byte byCurrentVerifyMode;

        public byte byAttendanceStatus;

        public byte byStatusValue;

        public byte[] byEmployeeNo = new byte[32];

        public byte byRes1;

        public byte byMask;

        public byte byThermometryUnit;

        public byte byIsAbnomalTemperature;

        public float fCurrTemperature;

        public NET_VCA_POINT struRegionCoordinates;

        public byte[] byRes = new byte[48];
    }

    public static class NET_DVR_ACS_EVENT_CFG extends HIKSDKStructure {
        public int dwSize;

        public int dwMajor;

        public int dwMinor;

        public NET_DVR_TIME struTime = new NET_DVR_TIME();

        public byte[] sNetUser = new byte[16];

        public NET_DVR_IPADDR struRemoteHostAddr;

        public NET_DVR_ACS_EVENT_DETAIL struAcsEventInfo;

        public int dwPicDataLen;

        public Pointer pPicData;

        public short wInductiveEventType;

        public byte byTimeType;

        public byte byRes1;

        public int dwQRCodeInfoLen;

        public int dwVisibleLightDataLen;

        public int dwThermalDataLen;

        public Pointer pQRCodeInfo;

        public Pointer pVisibleLightData;

        public Pointer pThermalData;

        public byte[] byRes = new byte[36];
    }

    public static class NET_DVR_ACS_EVENT_COND extends HIKSDKStructure {
        public int dwSize;

        public int dwMajor;

        public int dwMinor;

        public NET_DVR_TIME struStartTime;

        public NET_DVR_TIME struEndTime;

        public byte[] byCardNo = new byte[32];

        public byte[] byName = new byte[32];

        public byte byPicEnable;

        public byte byTimeType;

        public byte[] byRes2 = new byte[2];

        public int dwBeginSerialNo;

        public int dwEndSerialNo;

        public int dwIOTChannelNo;

        public short wInductiveEventType;

        public byte bySearchType;

        public byte byEventAttribute;

        public byte[] szMonitorID = new byte[64];

        public byte[] byEmployeeNo = new byte[32];

        public byte[] byRes = new byte[140];
    }

    public static class NET_DVR_ACS_WORK_STATUS_V50 extends HIKSDKStructure {
        public int dwSize;

        public byte[] byDoorLockStatus = new byte[256];

        public byte[] byDoorStatus = new byte[256];

        public byte[] byMagneticStatus = new byte[256];

        public byte[] byCaseStatus = new byte[8];

        public short wBatteryVoltage;

        public byte byBatteryLowVoltage;

        public byte byPowerSupplyStatus;

        public byte byMultiDoorInterlockStatus;

        public byte byAntiSneakStatus;

        public byte byHostAntiDismantleStatus;

        public byte byIndicatorLightStatus;

        public byte[] byCardReaderOnlineStatus = new byte[512];

        public byte[] byCardReaderAntiDismantleStatus = new byte[512];

        public byte[] byCardReaderVerifyMode = new byte[512];

        public byte[] bySetupAlarmStatus = new byte[512];

        public byte[] byAlarmInStatus = new byte[512];

        public byte[] byAlarmOutStatus = new byte[512];

        public int dwCardNum;

        public byte byFireAlarmStatus;

        public byte byBatteryChargeStatus;

        public byte byMasterChannelControllerStatus;

        public byte bySlaveChannelControllerStatus;

        public byte byAntiSneakServerStatus;

        public byte[] byRes3 = new byte[3];

        public int dwAllowFaceNum;

        public int dwBlockFaceNum;

        public byte[] byRes2 = new byte[108];
    }

    public static class NET_DVR_ACS_PARAM_TYPE extends HIKSDKStructure {
        public int dwSize;

        public int dwParamType;

        public short wLocalControllerID;

        public byte[] byRes = new byte[30];
    }

    public static class NET_DVR_FACE_PARAM_COND extends HIKSDKStructure {
        public int dwSize;

        public byte[] byCardNo = new byte[32];

        public byte[] byEnableCardReader = new byte[512];

        public int dwFaceNum;

        public byte byFaceID;

        public byte[] byRes = new byte[127];
    }

    public static class NET_DVR_FACE_PARAM_CFG extends HIKSDKStructure {
        public int dwSize;

        public byte[] byCardNo = new byte[32];

        public int dwFaceLen;

        public Pointer pFaceBuffer;

        public byte[] byEnableCardReader = new byte[512];

        public byte byFaceID;

        public byte byFaceDataType;

        public byte[] byRes = new byte[126];
    }

    public static class NET_DVR_FACE_PARAM_STATUS extends HIKSDKStructure {
        public int dwSize;

        public byte[] byCardNo = new byte[32];

        public byte[] byCardReaderRecvStatus = new byte[512];

        public byte[] byErrorMsg = new byte[32];

        public int dwCardReaderNo;

        public byte byTotalStatus;

        public byte byFaceID;

        public byte[] byRes = new byte[130];
    }

    public static class NET_DVR_FACE_PARAM_BYCARD extends HIKSDKStructure {
        public byte[] byCardNo = new byte[32];

        public byte[] byEnableCardReader = new byte[512];

        public byte[] byFaceID = new byte[2];

        public byte[] byRes1 = new byte[42];
    }

    public static class NET_DVR_FACE_PARAM_BYREADER extends HIKSDKStructure {
        public int dwCardReaderNo;

        public byte byClearAllCard;

        public byte[] byRes1 = new byte[3];

        public byte[] byCardNo = new byte[32];

        public byte[] byRes = new byte[548];
    }

    public static class NET_DVR_DEL_FACE_PARAM_MODE extends Union {
        public byte[] uLen = new byte[588];

        public NET_DVR_FACE_PARAM_BYCARD struByCard;

        public NET_DVR_FACE_PARAM_BYREADER struByReader;
    }

    public static class NET_DVR_CHECK_FACE_PICTURE_COND extends HIKSDKStructure {
        public int dwSize;

        public int dwPictureNum;

        public byte byCheckTemplate;

        public byte[] byRes = new byte[127];
    }

    public static class NET_DVR_CHECK_FACE_PICTURE_CFG extends HIKSDKStructure {
        public int dwSize;

        public int dwPictureNo;

        public int dwPictureLen;

        public Pointer pPictureBuffer;

        public int dwFaceTemplateLen;

        public Pointer pFaceTemplateBuffer;

        public byte[] byRes = new byte[248];
    }

    public static class NET_DVR_CHECK_FACE_PICTURE_STATUS extends HIKSDKStructure {
        public int dwSize;

        public int dwPictureNo;

        public byte byCheckStatus;

        public byte[] byRes = new byte[127];
    }

    public static class NET_DVR_FINGER_PRINT_CFG_V50 extends HIKSDKStructure {
        public int dwSize;

        public byte[] byCardNo = new byte[32];

        public int dwFingerPrintLen;

        public byte[] byEnableCardReader = new byte[512];

        public byte byFingerPrintID;

        public byte byFingerType;

        public byte[] byRes1 = new byte[30];

        public byte[] byFingerData = new byte[768];

        public byte[] byEmployeeNo = new byte[32];

        public byte[] byLeaderFP = new byte[256];

        public byte[] byRes = new byte[128];
    }

    public static class NET_DVR_FINGER_PRINT_STATUS_V50 extends HIKSDKStructure {
        public int dwSize;

        public byte[] byCardNo = new byte[32];

        public byte[] byCardReaderRecvStatus = new byte[512];

        public byte byFingerPrintID;

        public byte byFingerType;

        public byte byTotalStatus;

        public byte byRecvStatus;

        public byte[] byErrorMsg = new byte[32];

        public int dwCardReaderNo;

        public byte[] byEmployeeNo = new byte[32];

        public byte[] byErrorEmployeeNo = new byte[32];

        public byte[] byRes = new byte[128];
    }

    public static class NET_DVR_FINGER_PRINT_INFO_COND_V50 extends HIKSDKStructure {
        public int dwSize;

        public byte[] byCardNo = new byte[32];

        public byte[] byEnableCardReader = new byte[512];

        public int dwFingerPrintNum;

        public byte byFingerPrintID;

        public byte byCallBackMode;

        public byte[] byRes2 = new byte[2];

        public byte[] byEmployeeNo = new byte[32];

        public byte[] byRes1 = new byte[128];
    }

    public static class NET_DVR_GROUP_CFG extends HIKSDKStructure {
        public int dwSize;

        public byte byEnable;

        public byte[] byRes1 = new byte[3];

        public NET_DVR_VALID_PERIOD_CFG struValidPeriodCfg = new NET_DVR_VALID_PERIOD_CFG();

        public byte[] byGroupName = new byte[32];

        public byte[] byRes2 = new byte[32];
    }

    public static class NET_DVR_MULTI_CARD_CFG_V50 extends HIKSDKStructure {
        public int dwSize;

        public byte byEnable;

        public byte bySwipeIntervalTimeout;

        public byte[] byRes1 = new byte[2];

        public NET_DVR_MULTI_CARD_GROUP_CFG_V50[] struGroupCfg = (NET_DVR_MULTI_CARD_GROUP_CFG_V50[])(new NET_DVR_MULTI_CARD_GROUP_CFG_V50()).toArray(20);

        public byte[] byRes2 = new byte[32];
    }

    public static class NET_DVR_MULTI_CARD_GROUP_CFG_V50 extends HIKSDKStructure {
        public byte byEnable;

        public byte byEnableOfflineVerifyMode;

        public byte[] byRes1 = new byte[2];

        public int dwTemplateNo;

        public NET_DVR_GROUP_COMBINATION_INFO_V50[] struGroupCombination = (NET_DVR_GROUP_COMBINATION_INFO_V50[])(new NET_DVR_GROUP_COMBINATION_INFO_V50()).toArray(8);
    }

    public static class NET_DVR_GROUP_COMBINATION_INFO_V50 extends HIKSDKStructure {
        public byte byEnable;

        public byte byMemberNum;

        public byte bySequenceNo;

        public byte byRes;

        public int dwGroupNo;
    }

    public static class NET_DVR_SINGLE_PLAN_SEGMENT_WEEK extends HIKSDKStructure {
        public NET_DVR_SINGLE_PLAN_SEGMENT[] struPlanCfgDay = new NET_DVR_SINGLE_PLAN_SEGMENT[8];
    }

    public static class NET_DVR_WEEK_PLAN_CFG extends HIKSDKStructure {
        public int dwSize;

        public byte byEnable;

        public byte[] byRes1 = new byte[3];

        public NET_DVR_SINGLE_PLAN_SEGMENT_WEEK[] struPlanCfg = new NET_DVR_SINGLE_PLAN_SEGMENT_WEEK[7];

        public byte[] byRes2 = new byte[16];
    }

    public static class NET_DVR_SINGLE_PLAN_SEGMENT extends HIKSDKStructure {
        public byte byEnable;

        public byte byDoorStatus;

        public byte byVerifyMode;

        public byte[] byRes = new byte[5];

        public NET_DVR_TIME_SEGMENT struTimeSegment;
    }

    public static class NET_DVR_TIME_SEGMENT extends HIKSDKStructure {
        public NET_DVR_SIMPLE_DAYTIME struBeginTime;

        public NET_DVR_SIMPLE_DAYTIME struEndTime;
    }

    public static class NET_DVR_SIMPLE_DAYTIME extends HIKSDKStructure {
        public byte byHour;

        public byte byMinute;

        public byte bySecond;

        public byte byRes;
    }

    public static class NET_DVR_WEEK_PLAN_COND extends HIKSDKStructure {
        public int dwSize;

        public int dwWeekPlanNumber;

        public short wLocalControllerID;

        public byte[] byRes = new byte[106];
    }

    public static class NET_DVR_PLAN_TEMPLATE extends HIKSDKStructure {
        public int dwSize;

        public byte byEnable;

        public byte[] byRes1 = new byte[3];

        public byte[] byTemplateName = new byte[32];

        public int dwWeekPlanNo;

        public int[] dwHolidayGroupNo = new int[16];

        public byte[] byRes2 = new byte[32];
    }

    public static class NET_DVR_PLAN_TEMPLATE_COND extends HIKSDKStructure {
        public int dwSize;

        public int dwPlanTemplateNumber;

        public short wLocalControllerID;

        public byte[] byRes = new byte[106];
    }

    public static class NET_DVR_CAPTURE_FACE_COND extends HIKSDKStructure {
        public int dwSize;

        public byte[] byRes = new byte[128];
    }

    public static class NET_DVR_FACE_FEATURE extends HIKSDKStructure {
        public NET_VCA_RECT struFace;

        public NET_VCA_POINT struLeftEye;

        public NET_VCA_POINT struRightEye;

        public NET_VCA_POINT struLeftMouth;

        public NET_VCA_POINT struRightMouth;

        public NET_VCA_POINT struNoseTip;
    }

    public static class NET_DVR_CAPTURE_FACE_CFG extends HIKSDKStructure {
        public int dwSize;

        public int dwFaceTemplate1Size;

        public Pointer pFaceTemplate1Buffer;

        public int dwFaceTemplate2Size;

        public Pointer pFaceTemplate2Buffer;

        public int dwFacePicSize;

        public Pointer pFacePicBuffer;

        public byte byFaceQuality1;

        public byte byFaceQuality2;

        public byte byCaptureProgress;

        public byte byFacePicQuality;

        public int dwInfraredFacePicSize;

        public Pointer pInfraredFacePicBuffer;

        public byte byInfraredFacePicQuality;

        public byte[] byRes1 = new byte[3];

        public NET_DVR_FACE_FEATURE struFeature = new NET_DVR_FACE_FEATURE();

        public byte[] byRes = new byte[56];
    }

    public static class NET_DVR_XML_CONFIG_INPUT extends HIKSDKStructure {
        public int dwSize;

        public Pointer lpRequestUrl;

        public int dwRequestUrlLen;

        public Pointer lpInBuffer;

        public int dwInBufferSize;

        public int dwRecvTimeOut;

        public byte[] byRes = new byte[32];
    }

    public static class NET_DVR_STRING_POINTER extends HIKSDKStructure {
        public byte[] byString;

        public NET_DVR_STRING_POINTER(int iLen) {
            this.byString = new byte[iLen];
        }
    }

    public static class NET_DVR_XML_CONFIG_OUTPUT extends HIKSDKStructure {
        public int dwSize;

        public Pointer lpOutBuffer;

        public int dwOutBufferSize;

        public int dwReturnedXMLSize;

        public Pointer lpStatusBuffer;

        public int dwStatusSize;

        public byte[] byRes = new byte[32];
    }

    public static class NET_DVR_SCENE_INFO extends HIKSDKStructure {
        public int dwSceneID;

        public byte[] bySceneName = new byte[32];

        public byte byDirection;

        public byte[] byRes1 = new byte[3];

        public NET_DVR_PTZPOS struPtzPos;

        public byte[] byRes2 = new byte[64];
    }

    public static class NET_DVR_DIRECTION extends HIKSDKStructure {
        public NET_VCA_POINT struStartPoint = new NET_VCA_POINT();

        public NET_VCA_POINT struEndPoint = new NET_VCA_POINT();
    }

    public static class NET_DVR_AID_INFO extends HIKSDKStructure {
        public byte byRuleID;

        public byte[] byRes1 = new byte[3];

        public byte[] byRuleName = new byte[32];

        public int dwAIDType;

        public NET_DVR_DIRECTION struDirect = new NET_DVR_DIRECTION();

        public byte bySpeedLimit;

        public byte byCurrentSpeed;

        public byte byVehicleEnterState;

        public byte byState;

        public byte[] byParkingID = new byte[16];

        public int dwAIDTypeEx;

        public byte[] byRes2 = new byte[16];
    }

    public static class NET_DVR_TFS_ALARM extends HIKSDKStructure {
        public int dwSize;

        public int dwRelativeTime;

        public int dwAbsTime;

        public int dwIllegalType;

        public int dwIllegalDuration;

        public byte[] byMonitoringSiteID = new byte[48];

        public byte[] byDeviceID = new byte[48];

        public NET_VCA_DEV_INFO struDevInfo = new NET_VCA_DEV_INFO();

        public NET_DVR_SCENE_INFO struSceneInfo = new NET_DVR_SCENE_INFO();

        public NET_DVR_TIME_EX struBeginRecTime = new NET_DVR_TIME_EX();

        public NET_DVR_TIME_EX struEndRecTime = new NET_DVR_TIME_EX();

        public NET_DVR_AID_INFO struAIDInfo = new NET_DVR_AID_INFO();

        public NET_DVR_PLATE_INFO struPlateInfo = new NET_DVR_PLATE_INFO();

        public NET_DVR_VEHICLE_INFO struVehicleInfo = new NET_DVR_VEHICLE_INFO();

        public int dwPicNum;

        public NET_ITS_PICTURE_INFO[] struPicInfo = new NET_ITS_PICTURE_INFO[8];

        public byte bySpecificVehicleType;

        public byte byLaneNo;

        public byte[] byRes1 = new byte[2];

        public NET_DVR_TIME_V30 struTime = new NET_DVR_TIME_V30();

        public int dwSerialNo;

        public byte byVehicleAttribute;

        public byte byPilotSafebelt;

        public byte byCopilotSafebelt;

        public byte byPilotSunVisor;

        public byte byCopilotSunVisor;

        public byte byPilotCall;

        public byte[] byRes2 = new byte[2];

        public byte[] byIllegalCode = new byte[32];

        public short wCountry;

        public byte byRegion;

        public byte byCrossLine;

        public byte[] byParkingSerialNO = new byte[16];

        public byte byCrossSpaces;

        public byte byAngledParking;

        public byte byAlarmValidity;

        public byte byDoorsStatus;

        public int dwXmlLen;

        public Pointer pXmlBuf;

        public byte byVehicleHeadTailStatus;

        public byte byBrokenNetHttp;

        public byte[] byRes = new byte[30];
    }

    public static class NET_ITS_OVERLAPCFG_COND extends HIKSDKStructure {
        public int dwSize;

        public int dwChannel;

        public int dwConfigMode;

        public byte byPicModeType;

        public byte byRelateType;

        public byte[] byRes = new byte[14];
    }

    public static class NET_ITS_OVERLAP_SINGLE_ITEM_PARAM_V50 extends HIKSDKStructure {
        public byte[] byRes1 = new byte[2];

        public byte byItemType;

        public byte byChangeLineNum;

        public byte bySpaceNum;

        public byte[] byRes2 = new byte[2];

        public byte byEnablePos;

        public short wStartPosTop;

        public short wStartPosLeft;

        public byte[] byItemTypeCustom = new byte[32];

        public byte[] byRes = new byte[8];
    }

    public static class NET_ITS_OVERLAP_ITEM_PARAM_V50 extends HIKSDKStructure {
        public NET_ITS_OVERLAP_SINGLE_ITEM_PARAM_V50[] struSingleItem = new NET_ITS_OVERLAP_SINGLE_ITEM_PARAM_V50[50];

        public int dwLinePercent;

        public int dwItemsStlye;

        public short wStartPosTop;

        public short wStartPosLeft;

        public short wCharStyle;

        public short wCharSize;

        public short wCharInterval;

        public byte[] byRes1 = new byte[2];

        public int dwForeClorRGB;

        public int dwBackClorRGB;

        public byte byColorAdapt;

        public byte byParamFillZeroEnble;

        public byte byPlateLeftCornerEnable;

        public byte byRes2;

        public short wStartSPicPosTop;

        public short wStartSPicPosLeft;

        public byte byOsdLocate;

        public byte[] byRes = new byte[63];
    }

    public static class NET_ITS_OVERLAP_INFO_PARAM extends HIKSDKStructure {
        public byte[] bySite = new byte[128];

        public byte[] byRoadNum = new byte[32];

        public byte[] byInstrumentNum = new byte[32];

        public byte[] byDirection = new byte[32];

        public byte[] byDirectionDesc = new byte[32];

        public byte[] byLaneDes = new byte[32];

        public byte[] byRes1 = new byte[32];

        public byte[] byMonitoringSite1 = new byte[44];

        public byte[] byMonitoringSite2 = new byte[32];

        public byte[] byRes = new byte[64];
    }

    public static class NET_ITS_OVERLAP_CFG_V50 extends HIKSDKStructure {
        public int dwSize;

        public byte byEnable;

        public byte[] byRes1 = new byte[3];

        public NET_ITS_OVERLAP_ITEM_PARAM_V50 struOverLapItemV50 = new NET_ITS_OVERLAP_ITEM_PARAM_V50();

        public NET_ITS_OVERLAP_INFO_PARAM struOverLapInfo = new NET_ITS_OVERLAP_INFO_PARAM();

        public byte[] byRes = new byte[120];
    }

    public static class NET_VCA_HUMAN_FEATURE extends HIKSDKStructure {
        public byte byAgeGroup;

        public byte bySex;

        public byte byEyeGlass;

        public byte byAge;

        public byte byAgeDeviation;

        public byte byRes0;

        public byte byMask;

        public byte bySmile;

        public byte byFaceExpression;

        public byte byRes1;

        public byte byRes2;

        public byte byHat;

        public byte[] byRes = new byte[4];
    }

    public static class NET_VCA_FACESNAP_ADDINFO extends HIKSDKStructure {
        public NET_VCA_RECT struFacePicRect = new NET_VCA_RECT();

        public int iSwingAngle;

        public int iTiltAngle;

        public int dwPupilDistance;

        public byte byBlockingState;

        public byte byFaceSnapThermometryEnabled;

        public byte byIsAbnomalTemperature;

        public byte byThermometryUnit;

        public NET_DVR_TIME_EX struEnterTime = new NET_DVR_TIME_EX();

        public NET_DVR_TIME_EX struExitTime = new NET_DVR_TIME_EX();

        public float fFaceTemperature;

        public float fAlarmTemperature;

        public byte[] byRes = new byte[472];
    }

    public static class NET_VCA_FACESNAP_RESULT extends HIKSDKStructure {
        public int dwSize;

        public int dwRelativeTime;

        public int dwAbsTime;

        public int dwFacePicID;

        public int dwFaceScore;

        public NET_VCA_TARGET_INFO struTargetInfo = new NET_VCA_TARGET_INFO();

        public NET_VCA_RECT struRect = new NET_VCA_RECT();

        public NET_VCA_DEV_INFO struDevInfo = new NET_VCA_DEV_INFO();

        public int dwFacePicLen;

        public int dwBackgroundPicLen;

        public byte bySmart;

        public byte byAlarmEndMark;

        public byte byRepeatTimes;

        public byte byUploadEventDataType;

        public NET_VCA_HUMAN_FEATURE struFeature = new NET_VCA_HUMAN_FEATURE();

        public float fStayDuration;

        public byte[] sStorageIP = new byte[16];

        public short wStoragePort;

        public short wDevInfoIvmsChannelEx;

        public byte byFacePicQuality;

        public byte byUIDLen;

        public byte byLivenessDetectionStatus;

        public byte byAddInfo;

        public Pointer pUIDBuffer;

        public Pointer pAddInfoBuffer;

        public byte byTimeDiffFlag;

        public byte cTimeDifferenceH;

        public byte cTimeDifferenceM;

        public byte byBrokenNetHttp;

        public Pointer pBuffer1;

        public Pointer pBuffer2;
    }

    public static class NET_VCA_FACESNAP_INFO_ALARM extends HIKSDKStructure {
        public int dwRelativeTime;

        public int dwAbsTime;

        public int dwSnapFacePicID;

        public int dwSnapFacePicLen;

        public NET_VCA_DEV_INFO struDevInfo = new NET_VCA_DEV_INFO();

        public byte byFaceScore;

        public byte bySex;

        public byte byGlasses;

        public byte byAge;

        public byte byAgeDeviation;

        public byte byAgeGroup;

        public byte byFacePicQuality;

        public byte byRes1;

        public int dwUIDLen;

        public Pointer pUIDBuffer;

        public float fStayDuration;

        public Pointer pBuffer1;
    }

    public static class NET_DVR_AREAINFOCFG extends HIKSDKStructure {
        public short wNationalityID;

        public short wProvinceID;

        public short wCityID;

        public short wCountyID;

        public int dwCode;
    }

    public static class NET_VCA_HUMAN_ATTRIBUTE extends HIKSDKStructure {
        public byte bySex;

        public byte byCertificateType;

        public byte[] byBirthDate = new byte[10];

        public byte[] byName = new byte[32];

        public NET_DVR_AREAINFOCFG struNativePlace = new NET_DVR_AREAINFOCFG();

        public byte[] byCertificateNumber = new byte[32];

        public int dwPersonInfoExtendLen;

        public Pointer pPersonInfoExtend;

        public byte byAgeGroup;

        public byte[] byRes2 = new byte[11];
    }

    public static class NET_VCA_BLOCKLIST_INFO_ALARM extends HIKSDKStructure {
        public NET_VCA_BLOCKLIST_INFO struBlockListInfo = new NET_VCA_BLOCKLIST_INFO();

        public int dwBlockListPicLen;

        public int dwFDIDLen;

        public Pointer pFDID;

        public int dwPIDLen;

        public Pointer pPID;

        public short wThresholdValue;

        public byte[] byRes = new byte[2];

        public Pointer pBuffer1;
    }

    public static class NET_VCA_BLOCKLIST_INFO extends HIKSDKStructure {
        public int dwSize;

        public int dwRegisterID;

        public int dwGroupNo;

        public byte byType;

        public byte byLevel;

        public byte[] byRes1 = new byte[2];

        public NET_VCA_HUMAN_ATTRIBUTE struAttribute = new NET_VCA_HUMAN_ATTRIBUTE();

        public byte[] byRemark = new byte[32];

        public int dwFDDescriptionLen;

        public Pointer pFDDescriptionBuffer;

        public int dwFCAdditionInfoLen;

        public Pointer pFCAdditionInfoBuffer;

        public byte[] byRes2 = new byte[4];
    }

    public static class NET_VCA_FACESNAP_MATCH_ALARM extends HIKSDKStructure {
        public int dwSize;

        public float fSimilarity;

        public NET_VCA_FACESNAP_INFO_ALARM struSnapInfo = new NET_VCA_FACESNAP_INFO_ALARM();

        public NET_VCA_BLOCKLIST_INFO_ALARM struBlockListInfo = new NET_VCA_BLOCKLIST_INFO_ALARM();

        public byte[] sStorageIP = new byte[16];

        public short wStoragePort;

        public byte byMatchPicNum;

        public byte byPicTransType;

        public int dwSnapPicLen;

        public Pointer pSnapPicBuffer;

        public NET_VCA_RECT struRegion = new NET_VCA_RECT();

        public int dwModelDataLen;

        public Pointer pModelDataBuffer;

        public byte byModelingStatus;

        public byte byLivenessDetectionStatus;

        public byte cTimeDifferenceH;

        public byte cTimeDifferenceM;

        public byte byMask;

        public byte bySmile;

        public byte byContrastStatus;

        public byte byBrokenNetHttp;
    }

    public static class NET_DVR_AID_ALARM_V41 extends HIKSDKStructure {
        public int dwSize;

        public int dwRelativeTime;

        public int dwAbsTime;

        public NET_VCA_DEV_INFO struDevInfo = new NET_VCA_DEV_INFO();

        public NET_DVR_AID_INFO struAIDInfo = new NET_DVR_AID_INFO();

        public NET_DVR_SCENE_INFO struSceneInfo = new NET_DVR_SCENE_INFO();

        public int dwPicDataLen;

        public Pointer pImage;

        public byte byDataType;

        public byte byLaneNo;

        public short wMilliSecond;

        public byte[] byMonitoringSiteID = new byte[48];

        public byte[] byDeviceID = new byte[48];

        public int dwXmlLen;

        public Pointer pXmlBuf;

        public byte byTargetType;

        public byte byRuleID;

        public short wDevInfoIvmsChannelEx;

        public byte byBrokenNetHttp;

        public byte[] byRes = new byte[3];

        public int dwPlateSmallPicDataLen;

        public Pointer pPlateSmallImage;
    }

    public static class NET_DVR_TPS_ALARM_V41 extends HIKSDKStructure {
        public int dwSize;

        public int dwRelativeTime;

        public int dwAbsTime;

        public NET_VCA_DEV_INFO struDevInfo;

        public NET_DVR_TPS_INFO_V41 struTPSInfo;

        public byte[] byMonitoringSiteID = new byte[48];

        public byte[] byDeviceID = new byte[48];

        public int dwStartTime;

        public int dwStopTime;

        public byte[] byRes = new byte[24];
    }

    public static class NET_DVR_LANE_PARAM_V41 extends HIKSDKStructure {
        public byte[] byRuleName = new byte[32];

        public byte byRuleID;

        public byte byLaneType;

        public byte byTrafficState;

        public byte byLaneNo;

        public int dwVaryType;

        public int dwTpsType;

        public int dwLaneVolume;

        public int dwLaneVelocity;

        public int dwTimeHeadway;

        public int dwSpaceHeadway;

        public float fSpaceOccupyRation;

        public float fTimeOccupyRation;

        public int dwLightVehicle;

        public int dwMidVehicle;

        public int dwHeavyVehicle;

        public NET_DVR_LANE_QUEUE struLaneQueue;

        public NET_VCA_POINT struRuleLocation;

        public int dwOversizeVehicle;

        public byte[] byRes2 = new byte[60];
    }

    public static class NET_DVR_TPS_INFO_V41 extends HIKSDKStructure {
        public int dwLanNum;

        public NET_DVR_LANE_PARAM_V41[] struLaneParam = new NET_DVR_LANE_PARAM_V41[8];

        public int dwSceneID;

        public byte[] byRes = new byte[28];
    }

    public static class NET_DVR_LANE_QUEUE extends HIKSDKStructure {
        public NET_VCA_POINT struHead;

        public NET_VCA_POINT struTail;

        public int dwLength;
    }

    public static class NET_DVR_TPS_STATISTICS_INFO extends HIKSDKStructure {
        public int dwSize;

        public int dwChan;

        public NET_DVR_TPS_STATISTICS_PARAM struTPSStatisticsInfo;

        public byte[] byRes = new byte[128];
    }

    public static class NET_DVR_TPS_STATISTICS_PARAM extends HIKSDKStructure {
        public byte byStart;

        public byte byCMD;

        public byte[] byRes = new byte[2];

        public short wDeviceID;

        public short wDataLen;

        public byte byTotalLaneNum;

        public byte[] byRes1 = new byte[15];

        public NET_DVR_TIME_V30 struStartTime;

        public int dwSamplePeriod;

        public NET_DVR_TPS_LANE_PARAM[] struLaneParam = new NET_DVR_TPS_LANE_PARAM[8];
    }

    public static class NET_DVR_TPS_LANE_PARAM extends HIKSDKStructure {
        public byte byLane;

        public byte bySpeed;

        public byte[] byRes = new byte[2];

        public int dwLightVehicle;

        public int dwMidVehicle;

        public int dwHeavyVehicle;

        public int dwTimeHeadway;

        public int dwSpaceHeadway;

        public float fSpaceOccupyRation;

        public float fTimeOccupyRation;

        public byte[] byRes1 = new byte[16];
    }

    public static class NET_DVR_TPS_REAL_TIME_INFO extends HIKSDKStructure {
        public int dwSize;

        public int dwChan;

        public NET_DVR_TIME_V30 struTime;

        public NET_DVR_TPS_PARAM struTPSRealTimeInfo;

        public Pointer pAddInfoBuffer;

        public byte byAddInfoFlag;

        public byte[] byRes1 = new byte[3];

        public int dwDeviceIDEx;

        public byte[] byRes = new byte[8];
    }

    public static class NET_DVR_TPS_PARAM extends HIKSDKStructure {
        public byte byStart;

        public byte byCMD;

        public short wSpaceHeadway;

        public short wDeviceID;

        public short wDataLen;

        public byte byLane;

        public byte bySpeed;

        public byte byLaneState;

        public byte byQueueLen;

        public short wLoopState;

        public short wStateMask;

        public int dwDownwardFlow;

        public int dwUpwardFlow;

        public byte byJamLevel;

        public byte byVehicleDirection;

        public byte byJamFlow;

        public byte byChannelizationLane;

        public byte byVehicleType;

        public byte[] byRes1 = new byte[5];

        public short wTimeHeadway;
    }

    public static class NET_DVR_TIME_SEARCH_COND extends HIKSDKStructure {
        public short wYear;

        public byte byMonth;

        public byte byDay;

        public byte byHour;

        public byte byMinute;

        public byte bySecond;

        public byte byLocalOrUTC;

        public short wMillisecond;

        public byte cTimeDifferenceH;

        public byte cTimeDifferenceM;
    }

    public static class NET_DVR_SEARCH_EVENT_PARAM extends HIKSDKStructure {
        public short wMajorType;

        public short wMinorType;

        public NET_DVR_TIME struStartTime = new NET_DVR_TIME();

        public NET_DVR_TIME struEndTime = new NET_DVR_TIME();

        public byte byLockType;

        public byte byValue;

        public byte[] byRes = new byte[130];

        public UNION_EVENT_PARAM uSeniorParam = new UNION_EVENT_PARAM();
    }

    public static class UNION_EVENT_PARAM extends Union {
        public byte[] byLen = new byte[300];

        public EVENT_INQUESTPARAM struInquestParam = new EVENT_INQUESTPARAM();
    }

    public static class EVENT_INQUESTPARAM extends HIKSDKStructure {
        public byte byRoomIndex;

        public byte[] byRes1 = new byte[3];

        public byte[] sInquestInfo = new byte[64];

        public byte[] byRes2 = new byte[232];
    }

    public static class NET_DVR_SEARCH_EVENT_PARAM_V50 extends HIKSDKStructure {
        public short wMajorType;

        public short wMinorType;

        public NET_DVR_TIME_SEARCH_COND struStartTime = new NET_DVR_TIME_SEARCH_COND();

        public NET_DVR_TIME_SEARCH_COND struEndTime = new NET_DVR_TIME_SEARCH_COND();

        public byte byLockType;

        public byte byQuickSearch;

        public byte[] byRes = new byte[254];

        public UNION_EVENT_PARAM_V50 uSeniorParam = new UNION_EVENT_PARAM_V50();
    }

    public static class UNION_EVENT_PARAM_V50 extends Union {
        public byte[] byLen = new byte[800];

        public EVENT_ALARMPARAM_V50 struAlarmParam = new EVENT_ALARMPARAM_V50();

        public EVENT_MOTIONPARAM_V50 struMotionParam = new EVENT_MOTIONPARAM_V50();

        public EVENT_VCAPARAM_V50 struVcaParam = new EVENT_VCAPARAM_V50();

        public EVENT_INQUESTPARAM_V50 struInquestParam = new EVENT_INQUESTPARAM_V50();

        public EVENT_VCADETECTPARAM_V50 struVCADetect = new EVENT_VCADETECTPARAM_V50();

        public EVENT_STREAMIDPARAM_V50 struStreamIDParam = new EVENT_STREAMIDPARAM_V50();

        public EVENT_POSPARAM_V50 struPosAlarm = new EVENT_POSPARAM_V50();

        public EVENT_TRIALPARAM_V50 struTrialParam = new EVENT_TRIALPARAM_V50();

        public EVENT_ACSPARAM_V50 struACSAlarm = new EVENT_ACSPARAM_V50();

        public EVENT_IOTPARAM_V50 struIOTAlarm = new EVENT_IOTPARAM_V50();
    }

    public static class EVENT_ALARMPARAM_V50 extends HIKSDKStructure {
        public short[] wAlarmInNo = new short[128];

        public byte[] byRes = new byte[544];
    }

    public static class EVENT_MOTIONPARAM_V50 extends HIKSDKStructure {
        public short[] wMotDetChanNo = new short[64];

        public byte[] byRes = new byte[672];
    }

    public static class EVENT_VCAPARAM_V50 extends HIKSDKStructure {
        public short[] wChanNo = new short[64];

        public byte byRuleID;

        public byte byDriverBehaviortType;

        public byte byADASType;

        public byte byGSensorType;

        public byte bySensorInType;

        public byte[] byRes = new byte[667];
    }

    public static class EVENT_INQUESTPARAM_V50 extends HIKSDKStructure {
        public byte byRoomIndex;

        public byte[] byRes = new byte[799];
    }

    public static class EVENT_VCADETECTPARAM_V50 extends HIKSDKStructure {
        public byte byAll;

        public byte[] byRes1 = new byte[3];

        public short[] wChanNo = new short[64];

        public byte[] byRes = new byte[668];
    }

    public static class EVENT_STREAMIDPARAM_V50 extends HIKSDKStructure {
        public NET_DVR_STREAM_INFO struIDInfo = new NET_DVR_STREAM_INFO();

        public int dwCmdType;

        public byte byBackupVolumeNum;

        public byte[] byRes1 = new byte[3];

        public byte[] byArchiveLabel = new byte[64];

        public byte[] byRes = new byte[656];
    }

    public static class EVENT_POSPARAM_V50 extends HIKSDKStructure {
        public short[] wChannel = new short[64];

        public byte byAllChan;

        public byte byCaseSensitive;

        public byte byCombinateMode;

        public byte byRes1;

        public byte[] sKeyWord = new byte[384];

        public byte[] byRes = new byte[284];
    }

    public static class EVENT_TRIALPARAM_V50 extends HIKSDKStructure {
        public byte[] byCaseNo = new byte[56];

        public byte[] byCaseName = new byte[100];

        public byte[] byLitigant1 = new byte[32];

        public byte[] byLitigant2 = new byte[32];

        public byte[] byChiefJudge = new byte[32];

        public byte byCaseType;

        public byte[] byRes = new byte[547];
    }

    public static class EVENT_ACSPARAM_V50 extends HIKSDKStructure {
        public int dwMajor;

        public int dwMinor;

        public byte[] byCardNo = new byte[32];

        public byte[] byName = new byte[32];

        public byte[] byMACAddr = new byte[6];

        public byte[] byRes = new byte[722];
    }

    public static class EVENT_IOTPARAM_V50 extends HIKSDKStructure {
        public short wDeviceType;

        public short wEventType;

        public short[] wChannel = new short[64];

        public byte byAllChan;

        public byte byCaseSensitive;

        public byte byCombinateMode;

        public byte bySearchType;

        public byte[] sKeyWord = new byte[384];

        public short wZoneNo;

        public byte[] byRes = new byte[278];
    }

    public static class NET_DVR_SEARCH_EVENT_RET extends HIKSDKStructure {
        public short wMajorType;

        public short wMinorType;

        public NET_DVR_TIME struStartTime = new NET_DVR_TIME();

        public NET_DVR_TIME struEndTime = new NET_DVR_TIME();

        public byte[] byChan = new byte[64];

        public byte[] byChanEx = new byte[32];

        public byte[] byRes = new byte[4];

        public UNION_EVENT_RET uSeniorRet = new UNION_EVENT_RET();
    }

    public static class UNION_EVENT_RET extends Union {
        public byte[] byLen = new byte[304];

        public EVENT_ALARMSTRET struAlarmRet = new EVENT_ALARMSTRET();

        public EVENT_INQUESTRET struInquestRet = new EVENT_INQUESTRET();
    }

    public static class EVENT_ALARMSTRET extends HIKSDKStructure {
        public int dwAlarmInNo;

        public byte[] byRes = new byte[300];
    }

    public static class EVENT_INQUESTRET extends HIKSDKStructure {
        public byte byRoomIndex;

        public byte byDriveIndex;

        public byte[] byRes1 = new byte[6];

        public int dwSegmentNo;

        public short wSegmetSize;

        public short wSegmentState;

        public byte[] byRes2 = new byte[288];

        protected List<String> getFieldOrder() {
            return Arrays.asList(new String[] { "byRoomIndex", "byDriveIndex", "byRes1", "dwSegmentNo", "wSegmetSize", "wSegmentState", "byRes2" });
        }
    }

    public static class NET_DVR_SEARCH_EVENT_RET_V50 extends HIKSDKStructure {
        public short wMajorType;

        public short wMinorType;

        public NET_DVR_TIME_SEARCH struStartTime = new NET_DVR_TIME_SEARCH();

        public NET_DVR_TIME_SEARCH struEndTime = new NET_DVR_TIME_SEARCH();

        public NET_DVR_ADDRESS struAddr = new NET_DVR_ADDRESS();

        public short[] wChan = new short[512];

        public byte[] byRes = new byte[256];

        public UNION_EVENT_RET_V50 uSeniorRet = new UNION_EVENT_RET_V50();
    }

    public static class UNION_EVENT_RET_V50 extends Union {
        public byte[] byLen = new byte[800];

        public EVENT_ALARMRET_V50 struAlarmRet = new EVENT_ALARMRET_V50();

        public EVENT_MOTIONRET_V50 struMotionRet = new EVENT_MOTIONRET_V50();

        public EVENT_VCARET_V50 struVcaRet = new EVENT_VCARET_V50();

        public EVENT_INQUESTRET_V50 struInquestRet = new EVENT_INQUESTRET_V50();

        public EVENT_STREAMIDRET_V50 struStreamIDRet = new EVENT_STREAMIDRET_V50();

        public EVENT_POSRET_V50 struPosRet = new EVENT_POSRET_V50();

        public EVENT_TRIALRET_V50 struTrialRet = new EVENT_TRIALRET_V50();

        public EVENT_IOTRET_V50 struIOTRet = new EVENT_IOTRET_V50();
    }

    public static class EVENT_ALARMRET_V50 extends HIKSDKStructure {
        public int dwAlarmInNo;

        public byte[] byRes = new byte[796];
    }

    public static class EVENT_MOTIONRET_V50 extends HIKSDKStructure {
        public int dwMotDetNo;

        public byte[] byRes = new byte[796];
    }

    public static class EVENT_VCARET_V50 extends HIKSDKStructure {
        public int dwChanNo;

        public byte byRuleID;

        public byte[] byRes1 = new byte[3];

        public byte[] byRuleName = new byte[32];

        public NET_VCA_EVENT_UNION uEvent = new NET_VCA_EVENT_UNION();

        public byte[] byRes = new byte[668];
    }

    public static class EVENT_INQUESTRET_V50 extends HIKSDKStructure {
        public byte byRoomIndex;

        public byte byDriveIndex;

        public byte[] byRes1 = new byte[6];

        public int dwSegmentNo;

        public short wSegmetSize;

        public short wSegmentState;

        public byte[] byRes2 = new byte[784];
    }

    public static class EVENT_STREAMIDRET_V50 extends HIKSDKStructure {
        public int dwRecordType;

        public int dwRecordLength;

        public byte byLockFlag;

        public byte byDrawFrameType;

        public byte byPosition;

        public byte byRes1;

        public byte[] byFileName = new byte[32];

        public int dwFileIndex;

        public byte[] byTapeIndex = new byte[32];

        public byte[] byFileNameEx = new byte[256];

        public byte[] byRes = new byte[464];
    }

    public static class EVENT_POSRET_V50 extends HIKSDKStructure {
        public int dwChanNo;

        public byte[] byRes = new byte[796];
    }

    public static class EVENT_TRIALRET_V50 extends HIKSDKStructure {
        public byte byRoomIndex;

        public byte byDriveIndex;

        public short wSegmetSize;

        public int dwSegmentNo;

        public byte bySegmentState;

        public byte byCaseType;

        public byte[] byRes = new byte[2];

        public byte[] byCaseNo = new byte[52];

        public byte[] byCaseName = new byte[64];

        public byte[] byLitigant1 = new byte[24];

        public byte[] byLitigant2 = new byte[24];

        public byte[] byChiefJudge = new byte[24];

        public byte[] byRes1 = new byte[600];
    }

    public static class EVENT_IOTRET_V50 extends HIKSDKStructure {
        public int dwChanNo;

        public byte[] byRes = new byte[796];
    }

    public static class NET_DVR_INQUEST_RESUME_SEGMENT extends HIKSDKStructure {
        public NET_DVR_TIME struStartTime = new NET_DVR_TIME();

        public NET_DVR_TIME struStopTime = new NET_DVR_TIME();

        public byte byRoomIndex;

        public byte byDriveIndex;

        public short wSegmetSize;

        public int dwSegmentNo;

        public byte[] byRes = new byte[24];
    }

    public static class NET_DVR_INQUEST_RESUME_EVENT extends HIKSDKStructure {
        public int dwResumeNum;

        public NET_DVR_INQUEST_RESUME_SEGMENT[] struResumeSegment = new NET_DVR_INQUEST_RESUME_SEGMENT[2];

        public byte byResumeMode;

        public byte[] byRes = new byte[199];
    }

    public static class NET_DVR_ALARM_SEARCH_COND extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_TIME_SEARCH_COND strStartTime;

        public NET_DVR_TIME_SEARCH_COND strStopTime;

        public int dwAlarmComm;

        public byte[] sAlarmUID = new byte[64];

        public byte[] byRes = new byte[128];
    }

    public static class NET_DVR_ALARM_SEARCH_RESULT extends HIKSDKStructure {
        public int dwSize;

        public int dwAlarmComm;

        public int dwAlarmLen;

        public Pointer pAlarmInfo;

        public NET_DVR_ALARMER struAlarmer = new NET_DVR_ALARMER();

        public byte[] byRes = new byte[128];
    }

    public static class NET_DVR_ALARM_ISAPI_INFO extends HIKSDKStructure {
        public Pointer pAlarmData;

        public int dwAlarmDataLen;

        public byte byDataType;

        public byte byPicturesNumber;

        public byte[] byRes = new byte[2];

        public Pointer pPicPackData;

        public byte[] byRes1 = new byte[32];
    }

    public static class NET_DVR_LOCAL_GENERAL_CFG extends HIKSDKStructure {
        public byte byExceptionCbDirectly;

        public byte byNotSplitRecordFile;

        public byte byResumeUpgradeEnable;

        public byte byAlarmJsonPictureSeparate;

        public byte[] byRes = new byte[4];

        public long i64FileSize;

        public int dwResumeUpgradeTimeout;

        public byte[] byRes1 = new byte[236];
    }

    public static class NET_DVR_LOCAL_TCP_PORT_BIND_CFG extends HIKSDKStructure {
        public short wLocalBindTcpMinPort;

        public short wLocalBindTcpMaxPort;

        public byte[] byRes = new byte[60];
    }

    public static class NET_DVR_LOCAL_CHECK_DEV extends HIKSDKStructure {
        public int dwCheckOnlineTimeout;

        public int dwCheckOnlineNetFailMax;

        public byte[] byRes = new byte[256];
    }

    public static class NET_DVR_ALARM_ISAPI_PICDATA extends HIKSDKStructure {
        public int dwPicLen;

        public byte byPicType;

        public byte[] byRes = new byte[3];

        public byte[] szFilename = new byte[256];

        public Pointer pPicData;
    }

    public static class NET_DVR_FOCUSMODE_CFG extends HIKSDKStructure {
        public int dwSize;

        public byte byFocusMode;

        public byte byAutoFocusMode;

        public short wMinFocusDistance;

        public byte byZoomSpeedLevel;

        public byte byFocusSpeedLevel;

        public byte byOpticalZoom;

        public byte byDigtitalZoom;

        public float fOpticalZoomLevel;

        public int dwFocusPos;

        public byte byFocusDefinitionDisplay;

        public byte byFocusSensitivity;

        public byte[] byRes1 = new byte[2];

        public int dwRelativeFocusPos;

        public byte[] byRes = new byte[48];
    }

    public static class NET_DVR_SERIALSTART_V40 extends HIKSDKStructure {
        public int dwSize;

        public int dwSerialType;

        public byte bySerialNum;

        public byte[] byRes = new byte[255];
    }

    public static class NET_DVR_PRESET_NAME extends HIKSDKStructure {
        public int dwSize;

        public short wPresetNum;

        public byte[] byRes1 = new byte[2];

        public byte[] byName = new byte[32];

        public short wPanPos;

        public short wTiltPos;

        public short wZoomPos;

        public byte[] byRes = new byte[58];
    }

    public static class NET_DVR_SENSOR_PARAM extends HIKSDKStructure {
        public byte bySensorType;

        public byte[] byRes = new byte[31];

        public float fHorWidth;

        public float fVerWidth;

        public float fFold;
    }

    public static class NET_DVR_PTZPOS_PARAM extends HIKSDKStructure {
        public float fPanPos;

        public float fTiltPos;

        public float fZoomPos;

        public byte[] byRes = new byte[16];
    }

    public static class NET_DVR_LLI_PARAM extends HIKSDKStructure {
        public float fSec;

        public byte byDegree;

        public byte byMinute;

        public byte[] byRes = new byte[6];
    }

    public static class NET_DVR_GIS_UPLOADINFO extends HIKSDKStructure {
        public int dwSize;

        public int dwRelativeTime;

        public int dwAbsTime;

        public NET_VCA_DEV_INFO struDevInfo = new NET_VCA_DEV_INFO();

        public float fAzimuth;

        public byte byLatitudeType;

        public byte byLongitudeType;

        public byte[] byRes1 = new byte[2];

        public NET_DVR_LLI_PARAM struLatitude = new NET_DVR_LLI_PARAM();

        public NET_DVR_LLI_PARAM struLongitude = new NET_DVR_LLI_PARAM();

        public float fHorizontalValue;

        public float fVerticalValue;

        public float fVisibleRadius;

        public float fMaxViewRadius;

        public NET_DVR_SENSOR_PARAM struSensorParam;

        public NET_DVR_PTZPOS_PARAM struPtzPos;

        public byte[] byRes = new byte[256];
    }

    public static class NET_DVR_DAYTIME extends HIKSDKStructure {
        public byte byHour;

        public byte byMinute;

        public byte bySecond;

        public byte byRes;

        public short wMilliSecond;

        public byte[] byRes1 = new byte[2];
    }

    public static class NET_DVR_SCHEDULE_DAYTIME extends HIKSDKStructure {
        public NET_DVR_DAYTIME struStartTime;

        public NET_DVR_DAYTIME struStopTime;
    }

    public static class NET_DVR_BUILTIN_SUPPLEMENTLIGHT extends HIKSDKStructure {
        public int dwSize;

        public byte byMode;

        public byte byBrightnessLimit;

        public byte bySupplementLightMode;

        public byte byMixedLightRegulatMode;

        public byte byLrLightBrightness;

        public byte byHighLrLightBrightness;

        public byte byHighBrightnessLimit;

        public byte byLowLrLightBrightness;

        public NET_DVR_SCHEDULE_DAYTIME struSchedTime;

        public byte byLowBrightnessLimit;

        public byte byWhiteLightBrightness;

        public byte[] byRes1 = new byte[254];
    }

    public static class NET_DVR_HANDLEEXCEPTION_V41 extends HIKSDKStructure {
        public int dwHandleType;

        public int dwMaxRelAlarmOutChanNum;

        public int[] dwRelAlarmOut = new int[4128];

        public byte[] byRes = new byte[64];
    }

    public static class NET_DVR_PRESETCHAN_INFO extends HIKSDKStructure {
        public int dwEnablePresetChan;

        public int dwPresetPointNo;
    }

    public static class NET_DVR_CRUISECHAN_INFO extends HIKSDKStructure {
        public int dwEnableCruiseChan;

        public int dwCruiseNo;
    }

    public static class NET_DVR_PTZTRACKCHAN_INFO extends HIKSDKStructure {
        public int dwEnablePtzTrackChan;

        public int dwPtzTrackNo;
    }

    public static class NET_DVR_EVENT_TRIGGER extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_HANDLEEXCEPTION_V41 struHandleException;

        public int[] dwRelRecordChan = new int[512];

        public NET_DVR_PRESETCHAN_INFO[] struPresetChanInfo = new NET_DVR_PRESETCHAN_INFO[512];

        public NET_DVR_CRUISECHAN_INFO[] struCruiseChanInfo = new NET_DVR_CRUISECHAN_INFO[512];

        public NET_DVR_PTZTRACKCHAN_INFO[] struPtzTrackInfo = new NET_DVR_PTZTRACKCHAN_INFO[512];

        public byte byDirection;

        public byte[] byRes2 = new byte[255];
    }

    public static class NET_DVR_FACELIB_GUARD_COND extends HIKSDKStructure {
        public int dwSize;

        public int dwChannel;

        public byte[] szFDID = new byte[68];

        public byte[] byRes = new byte[128];
    }

    public static class NET_DVR_FACELIB_COND extends HIKSDKStructure {
        public int dwSize;

        public byte[] szFDID = new byte[256];

        public byte byConcurrent;

        public byte byCover;

        public byte byCustomFaceLibID;

        public byte byPictureSaveMode;

        public byte[] byIdentityKey = new byte[64];

        public byte[] byRes = new byte[60];
    }

    public static class NET_DVR_SEND_PARAM_IN extends HIKSDKStructure {
        public Pointer pSendData;

        public int dwSendDataLen;

        public NET_DVR_TIME_V30 struTime = new NET_DVR_TIME_V30();

        public byte byPicType;

        public byte byPicURL;

        public byte byUploadModeling;

        public byte byRes1;

        public int dwPicMangeNo;

        public byte[] sPicName = new byte[32];

        public int dwPicDisplayTime;

        public Pointer pSendAppendData;

        public int dwSendAppendDataLen;

        public byte[] byRes = new byte[192];
    }

    public static class NET_DVR_INQUEST_ROOM extends HIKSDKStructure {
        public byte byRoomIndex;

        public byte byFileType;

        public byte[] byRes = new byte[22];
    }

    public static class NET_DVR_INQUEST_CDRW_CFG extends HIKSDKStructure {
        public int dwSize;

        public int dwNum;

        public int[] dwRwSelectPara = new int[64];

        public int dwModeSelect;

        public byte[] byRes = new byte[24];

        public int dwStartCDRW;

        public int dwHdExcp;

        public int dwInterval;

        public byte[] sLable = new byte[64];
    }

    public static class NET_DVR_INQUEST_CDRW_STATUS extends HIKSDKStructure {
        public int dwType;

        public NET_DVR_INQUEST_CDRW[] strCDRWNum = new NET_DVR_INQUEST_CDRW[4];

        public NET_DVR_TIME_EX struInquestStartTime = new NET_DVR_TIME_EX();

        public byte[] byRes = new byte[16];
    }

    public static class NET_DVR_INQUEST_CDRW extends HIKSDKStructure {
        public int dwEnable;

        public int dwStatus;

        public int dwVolumn;

        public int dwFreeSpace;

        public int dwTimeLeft;

        public byte byCDType;

        public byte[] byRes = new byte[3];
    }

    public static class NET_DVR_REALTIME_THERMOMETRY_COND extends HIKSDKStructure {
        public int dwSize;

        public int dwChan;

        public byte byRuleID;

        public byte byMode;

        public short wInterval;

        public byte[] byRes2 = new byte[60];
    }

    public static class NET_DVR_POINT_THERM_CFG extends HIKSDKStructure {
        public float fTemperature;

        public NET_VCA_POINT struPoint;

        public byte[] byRes = new byte[120];
    }

    public static class NET_DVR_LINEPOLYGON_THERM_CFG extends HIKSDKStructure {
        public float fMaxTemperature;

        public float fMinTemperature;

        public float fAverageTemperature;

        public float fTemperatureDiff;

        public NET_VCA_POLYGON struRegion;

        public byte[] byRes = new byte[32];
    }

    public static class NET_DVR_THERMOMETRY_UPLOAD extends HIKSDKStructure {
        public int dwSize;

        public int dwRelativeTime;

        public int dwAbsTime;

        public byte[] szRuleName = new byte[32];

        public byte byRuleID;

        public byte byRuleCalibType;

        public short wPresetNo;

        public NET_DVR_POINT_THERM_CFG struPointThermCfg;

        public NET_DVR_LINEPOLYGON_THERM_CFG struLinePolygonThermCfg;

        public byte byThermometryUnit;

        public byte byDataType;

        public byte byRes1;

        public byte bySpecialPointThermType;

        public float fCenterPointTemperature;

        public float fHighestPointTemperature;

        public float fLowestPointTemperature;

        public NET_VCA_POINT struHighestPoint;

        public NET_VCA_POINT struLowestPoint;

        public byte byIsFreezedata;

        public byte[] byRes = new byte[95];
    }

    public static class NET_PTZ_INFO extends HIKSDKStructure {
        public float fPan;

        public float fTilt;

        public float fZoom;

        public int dwFocus;

        public byte[] byRes = new byte[4];
    }

    public static class NET_DVR_THERMOMETRY_MODE extends HIKSDKStructure {
        public int dwSize;

        public byte byMode;

        public byte byThermometryROIEnabled;

        public byte[] byRes = new byte[62];
    }

    public static class NET_DVR_THERMOMETRY_COND extends HIKSDKStructure {
        public int dwSize;

        public int dwChannel;

        public short wPresetNo;

        public byte[] byRes = new byte[62];
    }

    public static class NET_DVR_THERMOMETRY_PRESETINFO_PARAM extends HIKSDKStructure {
        public byte byEnabled;

        public byte byRuleID;

        public short wDistance;

        public float fEmissivity;

        public byte byDistanceUnit;

        public byte[] byRes = new byte[2];

        public byte byReflectiveEnabled;

        public float fReflectiveTemperature;

        public byte[] szRuleName = new byte[32];

        public byte byemissivityMode;

        public byte[] byRes1 = new byte[62];

        public byte byRuleCalibType;

        public NET_VCA_POINT struPoint = new NET_VCA_POINT();

        public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();
    }

    public static class NET_DVR_THERMOMETRY_PRESETINFO extends HIKSDKStructure {
        public int dwSize;

        public short wPresetNo;

        public byte[] byRes = new byte[2];

        public NET_DVR_THERMOMETRY_PRESETINFO_PARAM[] struPresetInfo = new NET_DVR_THERMOMETRY_PRESETINFO_PARAM[40];
    }

    public static class NET_DVR_THERMOMETRY_ALARM extends HIKSDKStructure {
        public int dwSize;

        public int dwChannel;

        public byte byRuleID;

        public byte byThermometryUnit;

        public short wPresetNo;

        public NET_PTZ_INFO struPtzInfo = new NET_PTZ_INFO();

        public byte byAlarmLevel;

        public byte byAlarmType;

        public byte byAlarmRule;

        public byte byRuleCalibType;

        public NET_VCA_POINT struPoint = new NET_VCA_POINT();

        public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();

        public float fRuleTemperature;

        public float fCurrTemperature;

        public int dwPicLen;

        public int dwThermalPicLen;

        public int dwThermalInfoLen;

        public Pointer pPicBuff;

        public Pointer pThermalPicBuff;

        public Pointer pThermalInfoBuff;

        public NET_VCA_POINT struHighestPoint = new NET_VCA_POINT();

        public float fToleranceTemperature;

        public int dwAlertFilteringTime;

        public int dwAlarmFilteringTime;

        public int dwTemperatureSuddenChangeCycle;

        public float fTemperatureSuddenChangeValue;

        public byte byPicTransType;

        public byte[] byRes = new byte[39];
    }

    public static class NET_DVR_THERMOMETRY_DIFF_ALARM extends HIKSDKStructure {
        public int dwSize;

        public int dwChannel;

        public byte byAlarmID1;

        public byte byAlarmID2;

        public short wPresetNo;

        public byte byAlarmLevel;

        public byte byAlarmType;

        public byte byAlarmRule;

        public byte byRuleCalibType;

        public NET_VCA_POINT[] struPoint = (NET_VCA_POINT[])(new NET_VCA_POINT()).toArray(2);

        public NET_VCA_POLYGON[] struRegion = (NET_VCA_POLYGON[])(new NET_VCA_POLYGON()).toArray(2);

        public float fRuleTemperatureDiff;

        public float fCurTemperatureDiff;

        public NET_PTZ_INFO struPtzInfo;

        public int dwPicLen;

        public int dwThermalPicLen;

        public int dwThermalInfoLen;

        public Pointer pPicBuff;

        public Pointer pThermalPicBuff;

        public Pointer pThermalInfoBuff;

        public byte byThermometryUnit;

        public byte byPicTransType;

        public byte[] byRes1 = new byte[2];

        public float fToleranceTemperature;

        public int dwAlarmFilteringTime;

        public int dwVisibleChannel;

        public byte[] byRes = new byte[48];
    }

    public static class NET_DVR_SHIPSDETECTION_ALARM extends HIKSDKStructure {
        public int dwSize;

        public NET_VCA_DEV_INFO struDevInfo;

        public int dwRelativeTime;

        public int dwAbsTime;

        public byte byShipsNum;

        public byte byShipsNumHead;

        public byte byShipsNumEnd;

        public byte byPicTransType;

        public NET_DVR_SHIPSINFO[] struShipInfo = (NET_DVR_SHIPSINFO[])(new NET_DVR_SHIPSINFO()).toArray(20);

        public int dwPicLen;

        public int dwThermalPicLen;

        public Pointer pPicBuffer;

        public Pointer pThermalPicBuffer;

        public short wDevInfoIvmsChannelEx;

        public byte byTimeDiffFlag;

        public byte cTimeDifferenceH;

        public byte cTimeDifferenceM;

        public byte bySID;

        public byte[] byRes1 = new byte[2];

        public byte[] szSceneName = new byte[32];

        public byte[] byRes = new byte[216];
    }

    public static class NET_DVR_SHIPSINFO extends HIKSDKStructure {
        public float fShipsLength;

        public float fShipsHeight;

        public float fShipsWidth;

        public float fShipsSpeed;

        public byte byShipsDirection;

        public byte byShipsDetState;

        public byte byTriggerLineID;

        public byte[] byRes = new byte[61];

        public NET_VCA_POLYGON struShipsRect;
    }

    public static class NET_DVR_ARRAY_LIST extends HIKSDKStructure {
        public int dwSize;

        public int dwCount;

        public NET_DVR_ARRAY_INFO[] struArrayInfo = new NET_DVR_ARRAY_INFO[8];
    }

    public static class NET_DVR_BGA_INFO extends HIKSDKStructure {
        public byte byBga;

        public byte byBgaState;

        public short wBgaPercentage;

        public byte[] byRes = new byte[4];
    }

    public static class NET_DVR_ARRAY_INFO extends HIKSDKStructure {
        public short wArrayID;

        public byte byRaidMode;

        public byte byStatus;

        public int dwHCapacity;

        public int dwLCapacity;

        public int dwHFreeSpace;

        public int dwLFreeSpace;

        public byte[] byArrayName = new byte[16];

        public byte byPDCount;

        public byte bySpareCount;

        public byte[] byRes1 = new byte[2];

        public short[] wPDSlots = new short[16];

        public short[] wSparePDSlots = new short[16];

        public NET_DVR_BGA_INFO struBgaInfo;

        public short[] wPDSlotsPartTwo = new short[8];

        public short[] wSparePDSlotsPartTwo = new short[8];

        public byte[] byRes2 = new byte[48];
    }

    public static class NET_DVR_PHY_DISK_INFO extends HIKSDKStructure {
        public short wPhySlot;

        public byte byType;

        public byte byStatus;

        public byte[] byMode = new byte[40];

        public int dwHCapacity;

        public int dwLCapacity;

        public byte[] byArrrayName = new byte[16];

        public short wArrayID;

        public byte byArrayInformation;

        public byte[] byRes = new byte[101];
    }

    public static class NET_DVR_WORKSTATE_V40 extends HIKSDKStructure {
        public int dwSize;

        public int dwDeviceStatic;

        public NET_DVR_DISKSTATE[] struHardDiskStatic = new NET_DVR_DISKSTATE[33];

        public NET_DVR_CHANNELSTATE_V30[] struChanStatic = new NET_DVR_CHANNELSTATE_V30[512];

        public int[] dwHasAlarmInStatic = new int[4128];

        public int[] dwHasAlarmOutStatic = new int[4128];

        public int dwLocalDisplay;

        public byte[] byAudioInChanStatus = new byte[2];

        public byte[] byRes1 = new byte[2];

        public float fHumidity;

        public float fTemperature;

        public byte[] byRes = new byte[116];
    }

    public static class NET_DVR_GETWORKSTATE_COND extends HIKSDKStructure {
        public int dwSize;

        public byte byFindHardByCond;

        public byte byFindChanByCond;

        public byte[] byRes1 = new byte[2];

        public int[] dwFindHardStatus = new int[33];

        public int[] dwFindChanNo = new int[512];

        public byte[] byRes = new byte[64];
    }

    public static class NET_ITC_POLYGON extends HIKSDKStructure {
        public int dwPointNum;

        public NET_VCA_POINT[] struPos = new NET_VCA_POINT[20];
    }

    public static class CUSTOM_uRegion extends Union {
        public NET_VCA_RECT struRect = new NET_VCA_RECT();

        public NET_ITC_POLYGON struPolygon = new NET_ITC_POLYGON();
    }

    public static class NET_ITC_PLATE_RECOG_REGION_PARAM extends HIKSDKStructure {
        public byte byMode;

        public byte[] byRes1 = new byte[3];

        public CUSTOM_uRegion uRegion = new CUSTOM_uRegion();

        public byte[] byRes = new byte[16];
    }

    public static class NET_ITC_SINGLE_IOSPEED_PARAM extends HIKSDKStructure {
        public byte byEnable;

        public byte byTrigCoil1;

        public byte byCoil1IOStatus;

        public byte byTrigCoil2;

        public byte byCoil2IOStatus;

        public byte byRelatedDriveWay;

        public byte byTimeOut;

        public byte byRelatedIOOutEx;

        public int dwDistance;

        public byte byCapSpeed;

        public byte bySpeedLimit;

        public byte bySpeedCapEn;

        public byte bySnapTimes1;

        public byte bySnapTimes2;

        public byte byBigCarSpeedLimit;

        public byte byBigCarSignSpeed;

        public byte byIntervalType;

        public short[] wInterval1 = new short[4];

        public short[] wInterval2 = new short[4];

        public byte[] byRelatedIOOut = new byte[4];

        public byte byFlashMode;

        public byte byLaneType;

        public byte byCarSignSpeed;

        public byte byUseageType;

        public NET_ITC_PLATE_RECOG_REGION_PARAM[] struPlateRecog = new NET_ITC_PLATE_RECOG_REGION_PARAM[2];

        public byte byRelaLaneDirectionType;

        public byte byLowSpeedLimit;

        public byte byBigCarLowSpeedLimit;

        public byte byLowSpeedCapEn;

        public byte byEmergencyCapEn;

        public byte[] byRes = new byte[27];
    }

    public static class NET_ITC_PLATE_RECOG_PARAM extends HIKSDKStructure {
        public byte[] byDefaultCHN = new byte[3];

        public byte byEnable;

        public int dwRecogMode;

        public byte byVehicleLogoRecog;

        public byte byProvince;

        public byte byRegion;

        public byte byCountry;

        public short wPlatePixelWidthMin;

        public short wPlatePixelWidthMax;

        public byte[] byRes = new byte[24];
    }

    public static class NET_ITC_POST_IOSPEED_PARAM extends HIKSDKStructure {
        public NET_ITC_PLATE_RECOG_PARAM struPlateRecog;

        public NET_ITC_SINGLE_IOSPEED_PARAM[] struSingleIOSpeed = new NET_ITC_SINGLE_IOSPEED_PARAM[4];

        public byte[] byRes = new byte[32];
    }

    public static class NET_DVR_GEOGLOCATION extends HIKSDKStructure {
        public int[] iRes = new int[2];

        public int dwCity;
    }

    public static class NET_ITC_INTERVAL_PARAM extends HIKSDKStructure {
        public byte byIntervalType;

        public byte[] byRes1 = new byte[3];

        public short[] wInterval = new short[4];

        public byte[] byRes = new byte[8];
    }

    public static class NET_ITC_VTLANE_PARAM extends HIKSDKStructure {
        public byte byRelatedDriveWay;

        public byte bySpeedCapEn;

        public byte bySignSpeed;

        public byte bySpeedLimit;

        public byte bySnapTimes;

        public byte byBigCarSignSpeed;

        public byte byBigCarSpeedLimit;

        public byte byRelatedIOOutEx;

        public NET_ITC_INTERVAL_PARAM struInterval = new NET_ITC_INTERVAL_PARAM();

        public byte[] byRelatedIOOut = new byte[4];

        public byte byFlashMode;

        public byte byLowSpeedLimit;

        public byte byBigCarLowSpeedLimit;

        public byte byRelaLaneDirectionType;

        public NET_ITC_PLATE_RECOG_REGION_PARAM[] struPlateRecog = new NET_ITC_PLATE_RECOG_REGION_PARAM[2];

        public NET_VCA_LINE struLine = new NET_VCA_LINE();
    }

    public static class NET_ITC_VTCOIL_INFO extends HIKSDKStructure {
        public NET_VCA_RECT struLaneRect = new NET_VCA_RECT();

        public byte byTrigFlag;

        public byte byTrigSensitive;

        public byte[] byRelatedIOOut = new byte[4];

        public byte byFlashMode;

        public byte byLaneType;

        public byte byEnableRadar;

        public NET_ITC_VTLANE_PARAM struLane = new NET_ITC_VTLANE_PARAM();

        public byte byUseageType;

        public byte byCarDriveDirect;

        public byte[] byRes = new byte[30];
    }

    public static class NET_ITC_RADAR_PARAM extends HIKSDKStructure {
        public byte byRadarType;

        public byte byLevelAngle;

        public short wRadarSensitivity;

        public short wRadarSpeedValidTime;

        public byte[] byRes1 = new byte[2];

        public float fLineCorrectParam;

        public int iConstCorrectParam;

        public byte[] byRes2 = new byte[8];
    }

    public static class NET_ITC_POST_VTCOIL_PARAM extends HIKSDKStructure {
        public byte byRelatedLaneNum;

        public byte byIsDisplay;

        public byte byLoopPos;

        public byte byPolarLenType;

        public byte byDayAuxLightMode;

        public byte byVideoLaneNO;

        public byte byVideoLowTh;

        public byte byVideoHighTh;

        public byte byRecordMode;

        public byte bySnapMode;

        public byte bySpeedDetector;

        public byte byRes2;

        public short wResolutionX;

        public short wResolutionY;

        public int dwDayInitExp;

        public int dwDayMaxExp;

        public int dwNightExp;

        public int dwSnapExp;

        public byte byDayInitGain;

        public byte byDayMaxGain;

        public byte byNightGain;

        public byte bySnapGain;

        public int dwSceneMode;

        public NET_DVR_GEOGLOCATION struGeogLocation = new NET_DVR_GEOGLOCATION();

        public NET_ITC_PLATE_RECOG_PARAM struPlateRecog = new NET_ITC_PLATE_RECOG_PARAM();

        public NET_ITC_VTCOIL_INFO[] struVtCoil = new NET_ITC_VTCOIL_INFO[5];

        public NET_ITC_RADAR_PARAM struRadar = new NET_ITC_RADAR_PARAM();

        public NET_VCA_LINE struLine = new NET_VCA_LINE();

        public int dwVioDetectType;

        public byte byDebugMode;

        public byte[] byRes = new byte[11];
    }

    public static class NET_ITC_LANE_LOGIC_PARAM extends HIKSDKStructure {
        public byte byUseageType;

        public byte byDirectionType;

        public byte byCarDriveDirect;

        public byte[] byRes = new byte[33];
    }

    public static class NET_ITC_LINE extends HIKSDKStructure {
        public NET_VCA_LINE struLine = new NET_VCA_LINE();

        public byte byLineType;

        public byte[] byRes = new byte[7];
    }

    public static class NET_ITC_SNAPMODE_PARAM extends HIKSDKStructure {
        public byte byVehicleCapMode;

        public byte byNoVehicleCapMode;

        public byte byPasserCapMode;

        public byte[] byRes = new byte[29];
    }

    public static class NET_ITC_HVT_EC_PARAM extends HIKSDKStructure {
        public int dwCapShutter;

        public short wCapGain;

        public byte[] byRes = new byte[2];

        public int dwDayTimeVideoShutter;

        public short wDayTimeVideoGain;

        public short wNightVideoGain;

        public short wNightVideoShutter;

        public byte[] byRes1 = new byte[108];
    }

    public static class NET_ITC_LANE_HVT_PARAM extends HIKSDKStructure {
        public byte byLaneNO;

        public byte bySignSpeed;

        public byte bySpeedLimit;

        public byte byBigCarSignSpeed;

        public byte byBigCarSpeedLimit;

        public byte bySpeedCapEn;

        public byte byCaptureCount;

        public byte byRelatedIOOut;

        public byte byFlashMode;

        public byte byEnableRadar;

        public byte byChangeLaneEnable;

        public byte byChangeLaneCapNo;

        public int dwCapTarget;

        public NET_ITC_INTERVAL_PARAM struInterval;

        public byte[] byRes3 = new byte[24];

        public NET_ITC_LANE_LOGIC_PARAM struLane;

        public NET_ITC_LINE struLeftLaneLine;

        public NET_ITC_LINE struRightLaneLine;

        public NET_ITC_POLYGON struPlateRecog;

        public NET_ITC_POLYGON struTraceArea;

        public NET_VCA_LINE struForwardTrigLine;

        public NET_VCA_LINE struBackwardTrigLine;

        public NET_VCA_LINE struLeftTrigLine;

        public NET_VCA_LINE struRightTrigLine;

        public byte[] byRes4 = new byte[60];
    }

    public static class NET_ITC_POST_HVT_PARAM extends HIKSDKStructure {
        public byte byLaneNum;

        public byte bySceneMode;

        public byte byRoadExpBright;

        public byte byPlateExpBright;

        public NET_ITC_POLYGON struDetectArea;

        public NET_ITC_SNAPMODE_PARAM struCapMode = new NET_ITC_SNAPMODE_PARAM();

        public NET_ITC_HVT_EC_PARAM struEcParam = new NET_ITC_HVT_EC_PARAM();

        public NET_ITC_LANE_HVT_PARAM[] struLaneParam = new NET_ITC_LANE_HVT_PARAM[6];

        public NET_ITC_PLATE_RECOG_PARAM struPlateRecog = new NET_ITC_PLATE_RECOG_PARAM();

        public NET_DVR_GEOGLOCATION struGeogLocation = new NET_DVR_GEOGLOCATION();

        public byte[] byRes = new byte[324];
    }

    public static class NET_ITC_LANE_HVT_PARAM_V50 extends HIKSDKStructure {
        public byte byLaneNO;

        public byte byFlashMode;

        public byte bySignSpeed;

        public byte bySpeedLimit;

        public byte bySignLowSpeed;

        public byte byLowSpeedLimit;

        public byte byBigCarSignSpeed;

        public byte byBigCarSpeedLimit;

        public byte byBigCarSignLowSpeed;

        public byte byBigCarLowSpeedLimit;

        public byte bySnapTimes;

        public byte byDriveLineSnapTime;

        public byte byHighSpeedSnapTime;

        public byte byLowSpeedSnapTime;

        public byte byBanSnapTime;

        public byte byReverseSnapTime;

        public byte byRelatedDriveWay;

        public byte byLaneType;

        public byte byRelaLaneDirectionType;

        public byte[] byRes1 = new byte[27];

        public byte byChangeLaneEnable;

        public byte byChangeLaneCapNo;

        public int dwVioDetectType;

        public int dwRelatedIOOut;

        public NET_ITC_LINE struTrigLine;

        public NET_ITC_LINE struLineLeft;

        public NET_ITC_POLYGON struPlateRecog;

        public NET_ITC_LANE_LOGIC_PARAM struLane;

        public NET_ITC_INTERVAL_PARAM struInterval;

        public byte[] byRes2 = new byte[280];
    }

    public static class NET_ITC_POST_HVT_PARAM_V50 extends HIKSDKStructure {
        public byte byLaneNum;

        public byte byCapType;

        public byte byCapMode;

        public byte bySecneMode;

        public byte bySpeedMode;

        public byte byLineRuleEffect;

        public byte[] byRes1 = new byte[78];

        public NET_ITC_LINE struLeftTrigLine;

        public NET_ITC_LINE struRigtTrigLine;

        public NET_ITC_LINE struLaneBoundaryLine;

        public NET_ITC_POLYGON struDetectArea;

        public NET_DVR_GEOGLOCATION struGeogLocation;

        public NET_ITC_LANE_HVT_PARAM_V50[] struLaneParam = new NET_ITC_LANE_HVT_PARAM_V50[6];

        public NET_ITC_PLATE_RECOG_PARAM struPlateRecog;

        public byte[] byRes2 = new byte[260];
    }

    public static class NET_ITC_LANE_PARAM extends HIKSDKStructure {
        public byte byEnable;

        public byte byRelatedDriveWay;

        public short wDistance;

        public short wTrigDelayTime;

        public byte byTrigDelayDistance;

        public byte bySpeedCapEn;

        public byte bySignSpeed;

        public byte bySpeedLimit;

        public byte bySnapTimes;

        public byte byOverlayDriveWay;

        public NET_ITC_INTERVAL_PARAM struInterval;

        public byte[] byRelatedIOOut = new byte[4];

        public byte byFlashMode;

        public byte byCartSignSpeed;

        public byte byCartSpeedLimit;

        public byte byRelatedIOOutEx;

        public NET_ITC_PLATE_RECOG_REGION_PARAM[] struPlateRecog = new NET_ITC_PLATE_RECOG_REGION_PARAM[2];

        public byte byLaneType;

        public byte byUseageType;

        public byte byRelaLaneDirectionType;

        public byte byLowSpeedLimit;

        public byte byBigCarLowSpeedLimit;

        public byte byLowSpeedCapEn;

        public byte byEmergencyCapEn;

        public byte[] byRes = new byte[9];
    }

    public static class NET_ITC_POST_RS485_PARAM extends HIKSDKStructure {
        public byte byRelatedLaneNum;

        public byte byTriggerSpareMode;

        public byte byFaultToleranceTime;

        public byte byRes1;

        public NET_ITC_PLATE_RECOG_PARAM struPlateRecog = new NET_ITC_PLATE_RECOG_PARAM();

        public NET_ITC_LANE_PARAM[] struLane = new NET_ITC_LANE_PARAM[6];

        public byte[] byRes = new byte[32];
    }

    public static class NET_ITC_POST_RS485_RADAR_PARAM extends HIKSDKStructure {
        public byte byRelatedLaneNum;

        public byte[] byRes1 = new byte[3];

        public NET_ITC_PLATE_RECOG_PARAM struPlateRecog = new NET_ITC_PLATE_RECOG_PARAM();

        public NET_ITC_LANE_PARAM[] struLane = new NET_ITC_LANE_PARAM[6];

        public NET_ITC_RADAR_PARAM struRadar = new NET_ITC_RADAR_PARAM();

        public byte[] byRes = new byte[32];
    }

    public static class NET_ITC_TRIGGER_PARAM_UNION extends Union {
        public int[] uLen = new int[1070];

        public NET_ITC_POST_IOSPEED_PARAM struIOSpeed = new NET_ITC_POST_IOSPEED_PARAM();

        public NET_ITC_POST_RS485_PARAM struPostRs485 = new NET_ITC_POST_RS485_PARAM();

        public NET_ITC_POST_RS485_RADAR_PARAM struPostRadar = new NET_ITC_POST_RS485_RADAR_PARAM();

        public NET_ITC_POST_VTCOIL_PARAM struVtCoil = new NET_ITC_POST_VTCOIL_PARAM();

        public NET_ITC_POST_HVT_PARAM struHvt = new NET_ITC_POST_HVT_PARAM();

        public NET_ITC_POST_HVT_PARAM_V50 struHvtV50 = new NET_ITC_POST_HVT_PARAM_V50();
    }

    public static class NET_ITC_SINGLE_TRIGGERCFG extends HIKSDKStructure {
        public byte byEnable;

        public byte[] byRes1 = new byte[3];

        public int dwTriggerType;

        public NET_ITC_TRIGGER_PARAM_UNION uTriggerParam = new NET_ITC_TRIGGER_PARAM_UNION();

        public byte[] byRes = new byte[64];
    }

    public static class NET_ITC_TRIGGERCFG extends HIKSDKStructure {
        public int dwSize;

        public NET_ITC_SINGLE_TRIGGERCFG struTriggerParam;

        public byte[] byRes = new byte[32];
    }

    public static class NET_ITC_SINGLE_IO_LIGHT_PARAM extends HIKSDKStructure {
        public byte byLightType;

        public byte byRelatedIO;

        public byte byRedLightState;

        public byte[] byRes = new byte[17];
    }

    public static class NET_ITC_IO_LIGHT_PARAM extends HIKSDKStructure {
        public NET_ITC_SINGLE_IO_LIGHT_PARAM[] struIOLight = new NET_ITC_SINGLE_IO_LIGHT_PARAM[6];

        public byte[] byRes = new byte[8];
    }

    public static class NET_ITC_SINGLE_RS485_LIGHT_PARAM extends HIKSDKStructure {
        public byte byLightType;

        public byte byRelatedLightChan;

        public byte byInputLight;

        public byte byRelatedYLightChan;

        public byte[] byRes = new byte[16];
    }

    public static class NET_ITC_RS485_LIGHT_PARAM extends HIKSDKStructure {
        public NET_ITC_SINGLE_RS485_LIGHT_PARAM[] struRS485Light = new NET_ITC_SINGLE_RS485_LIGHT_PARAM[6];

        public byte[] byRes = new byte[8];
    }

    public static class NET_POS_PARAM extends HIKSDKStructure {
        public short wLeft;

        public short wTop;

        public short wRight;

        public short wBottom;
    }

    public static class NET_ITC_SINGLE_VIDEO_DETECT_LIGHT_PARAM extends HIKSDKStructure {
        public byte byLightNum;

        public byte byStraightLight;

        public byte byLeftLight;

        public byte byRightLight;

        public byte byRedLight;

        public byte byGreenLight;

        public byte byYellowLight;

        public byte byYellowLightTime;

        public NET_POS_PARAM struLightRect;

        public byte[] byRes = new byte[24];
    }

    public static class NET_ITC_VIDEO_DETECT_LIGHT_PARAM extends HIKSDKStructure {
        public NET_ITC_SINGLE_VIDEO_DETECT_LIGHT_PARAM[] struTrafficLight = new NET_ITC_SINGLE_VIDEO_DETECT_LIGHT_PARAM[12];

        public byte[] byRes = new byte[8];
    }

    public static class NET_ITC_LIGHT_ACCESSPARAM_UNION extends Union {
        public int[] uLen = new int[122];

        public NET_ITC_IO_LIGHT_PARAM struIOLight;

        public NET_ITC_RS485_LIGHT_PARAM struRS485Light;

        public NET_ITC_VIDEO_DETECT_LIGHT_PARAM struVideoDelectLight;
    }

    public static class NET_ITC_TRAFFIC_LIGHT_PARAM extends HIKSDKStructure {
        public byte bySource;

        public byte[] byRes1 = new byte[3];

        public NET_ITC_LIGHT_ACCESSPARAM_UNION struLightAccess = new NET_ITC_LIGHT_ACCESSPARAM_UNION();

        public byte[] byRes = new byte[32];
    }

    public static class NET_ITC_VIOLATION_DETECT_PARAM extends HIKSDKStructure {
        public int dwVioDetectType;

        public byte byDriveLineSnapTimes;

        public byte byReverseSnapTimes;

        public short wStayTime;

        public byte byNonDriveSnapTimes;

        public byte byChangeLaneTimes;

        public byte bybanTimes;

        public byte byDriveLineSnapSen;

        public short wSnapPosFixPixel;

        public byte bySpeedTimes;

        public byte byTurnAroundEnable;

        public byte byThirdPlateRecogTime;

        public byte byPostSnapTimes;

        public byte[] byRes1 = new byte[18];

        public short wStopLineDis;

        public byte[] byRes = new byte[14];
    }

    public static class NET_ITC_VIOLATION_DETECT_LINE extends HIKSDKStructure {
        public NET_ITC_LINE struLaneLine = new NET_ITC_LINE();

        public NET_ITC_LINE struStopLine = new NET_ITC_LINE();

        public NET_ITC_LINE struRedLightLine = new NET_ITC_LINE();

        public NET_ITC_LINE struCancelLine = new NET_ITC_LINE();

        public NET_ITC_LINE struWaitLine = new NET_ITC_LINE();

        public NET_ITC_LINE[] struRes = new NET_ITC_LINE[8];
    }

    public static class NET_ITC_LANE_VIDEO_EPOLICE_PARAM extends HIKSDKStructure {
        public byte byLaneNO;

        public byte bySensitivity;

        public byte byEnableRadar;

        public byte byRelaLaneDirectionType;

        public NET_ITC_LANE_LOGIC_PARAM struLane;

        public NET_ITC_VIOLATION_DETECT_PARAM struVioDetect;

        public NET_ITC_VIOLATION_DETECT_LINE struLine;

        public NET_ITC_POLYGON struPlateRecog;

        public byte byRecordEnable;

        public byte byRecordType;

        public byte byPreRecordTime;

        public byte byRecordDelayTime;

        public byte byRecordTimeOut;

        public byte byCarSpeedLimit;

        public byte byCarSignSpeed;

        public byte bySnapPicPreRecord;

        public NET_ITC_INTERVAL_PARAM struInterval;

        public byte[] byRes = new byte[36];
    }

    public static class NET_ITC_VIDEO_EPOLICE_PARAM extends HIKSDKStructure {
        public byte byEnable;

        public byte byLaneNum;

        public byte byLogicJudge;

        public byte byRes1;

        public NET_ITC_PLATE_RECOG_PARAM struPlateRecog;

        public NET_ITC_TRAFFIC_LIGHT_PARAM struTrafficLight;

        public NET_ITC_LANE_VIDEO_EPOLICE_PARAM[] struLaneParam = new NET_ITC_LANE_VIDEO_EPOLICE_PARAM[6];

        public NET_ITC_LINE struLaneBoundaryLine;

        public NET_ITC_LINE struLeftLine;

        public NET_ITC_LINE struRightLine;

        public NET_ITC_LINE struTopZebraLine;

        public NET_ITC_LINE struBotZebraLine;

        public byte[] byRes = new byte[32];
    }

    public static class NET_DVR_CURTRIGGERMODE extends HIKSDKStructure {
        public int dwSize;

        public int dwTriggerType;

        public byte[] byRes = new byte[24];
    }

    public static class NET_ITC_VIDEO_TRIGGER_COND extends HIKSDKStructure {
        public int dwSize;

        public int dwChannel;

        public int dwTriggerMode;

        public byte[] byRes = new byte[16];
    }

    public static class NET_ITC_VIDEO_TRIGGER_PARAM_UNION extends Union {
        public int[] uLen = new int[1150];

        public NET_ITC_VIDEO_EPOLICE_PARAM struVideoEP = new NET_ITC_VIDEO_EPOLICE_PARAM();
    }

    public static class NET_ITC_VIDEO_TRIGGER_PARAM extends HIKSDKStructure {
        public int dwSize;

        public int dwMode;

        public NET_ITC_VIDEO_TRIGGER_PARAM_UNION uVideoTrigger = new NET_ITC_VIDEO_TRIGGER_PARAM_UNION();

        public byte[] byRes = new byte[32];
    }

    public static class NET_DVR_CMS_PARAM extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_IPADDR struAddr = new NET_DVR_IPADDR();

        public short wServerPort;

        public byte bySeverProtocolType;

        public byte byStatus;

        public byte[] sDeviceId = new byte[32];

        public byte[] sPassWord = new byte[16];

        public byte[] sPlatformEhomeVersion = new byte[32];

        public byte byNetWork;

        public byte byAddressType;

        public byte byProtocolVersion;

        public byte byRes1;

        public byte[] sDomainName = new byte[64];

        public byte byEnable;

        public byte[] byRes = new byte[139];
    }

    public static class NET_DVR_COMPLETE_RESTORE_INFO extends HIKSDKStructure {
        public int dwSize;

        public int dwChannel;

        public byte[] byRes = new byte[64];
    }

    public static class NET_DVR_STD_ABILITY extends HIKSDKStructure {
        public Pointer lpCondBuffer;

        public int dwCondSize;

        public Pointer lpOutBuffer;

        public int dwOutSize;

        public Pointer lpStatusBuffer;

        public int dwStatusSize;

        public int dwRetSize;

        public byte[] byRes = new byte[32];
    }

    public static class NET_DVR_STD_CONFIG extends HIKSDKStructure {
        public Pointer lpCondBuffer;

        public int dwCondSize;

        public Pointer lpInBuffer;

        public int dwInSize;

        public Pointer lpOutBuffer;

        public int dwOutSize;

        public Pointer lpStatusBuffer;

        public int dwStatusSize;

        public Pointer lpXmlBuffer;

        public int dwXmlSize;

        public byte byDataType;

        public byte[] byRes = new byte[23];
    }

    public static class NET_DVR_LOCAL_SDK_PATH extends HIKSDKStructure {
        public byte[] sPath = new byte[256];

        public byte[] byRes = new byte[128];
    }

    public static class BYTE_ARRAY extends HIKSDKStructure {
        public byte[] byValue;

        public BYTE_ARRAY(int iLen) {
            this.byValue = new byte[iLen];
        }
    }

    public static class INT_ARRAY extends HIKSDKStructure {
        public int[] intValue;

        public INT_ARRAY(int iLen) {
            this.intValue = new int[iLen];
        }
    }

    public static class INTRef_ARRAY extends HIKSDKStructure {
        public IntByReference[] intValue;

        public INTRef_ARRAY(int iLen) {
            this.intValue = new IntByReference[iLen];
        }
    }

    public static class NET_DVR_JSON_DATA_CFG extends HIKSDKStructure {
        public int dwSize;

        public Pointer lpJsonData;

        public int dwJsonDataSize;

        public Pointer lpPicData;

        public int dwPicDataSize;

        public int lpInfraredFacePicBuffer;

        public Pointer dwInfraredFacePicSize;

        public byte[] byRes = new byte[248];
    }

    public static class CallBack_USER extends HIKSDKStructure {
        public byte[] byDeviceID = new byte[16];

        public byte[] byCardNo = new byte[32];

        public byte[] byDevIP = new byte[16];
    }

    public static class NET_DVR_CAMERAPARAMCFG_EX extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_VIDEOEFFECT struVideoEffect = new NET_DVR_VIDEOEFFECT();

        public NET_DVR_GAIN struGain = new NET_DVR_GAIN();

        public NET_DVR_WHITEBALANCE struWhiteBalance = new NET_DVR_WHITEBALANCE();

        public NET_DVR_EXPOSURE struExposure = new NET_DVR_EXPOSURE();

        public NET_DVR_GAMMACORRECT struGammaCorrect = new NET_DVR_GAMMACORRECT();

        public NET_DVR_WDR struWdr = new NET_DVR_WDR();

        public NET_DVR_DAYNIGHT struDayNight = new NET_DVR_DAYNIGHT();

        public NET_DVR_BACKLIGHT struBackLight = new NET_DVR_BACKLIGHT();

        public NET_DVR_NOISEREMOVE struNoiseRemove = new NET_DVR_NOISEREMOVE();

        public byte byPowerLineFrequencyMode;

        public byte byIrisMode;

        public byte byMirror;

        public byte byDigitalZoom;

        public byte byDeadPixelDetect;

        public byte byBlackPwl;

        public byte byEptzGate;

        public byte byLocalOutputGate;

        public byte byCoderOutputMode;

        public byte byLineCoding;

        public byte byDimmerMode;

        public byte byPaletteMode;

        public byte byEnhancedMode;

        public byte byDynamicContrastEN;

        public byte byDynamicContrast;

        public byte byJPEGQuality;

        public NET_DVR_CMOSMODECFG struCmosModeCfg = new NET_DVR_CMOSMODECFG();

        public byte byFilterSwitch;

        public byte byFocusSpeed;

        public byte byAutoCompensationInterval;

        public byte bySceneMode;

        public NET_DVR_DEFOGCFG struDefogCfg = new NET_DVR_DEFOGCFG();

        public NET_DVR_ELECTRONICSTABILIZATION struElectronicStabilization = new NET_DVR_ELECTRONICSTABILIZATION();

        public NET_DVR_CORRIDOR_MODE_CCD struCorridorMode = new NET_DVR_CORRIDOR_MODE_CCD();

        public byte byExposureSegmentEnable;

        public byte byBrightCompensate;

        public byte byCaptureModeN;

        public byte byCaptureModeP;

        public NET_DVR_SMARTIR_PARAM struSmartIRParam = new NET_DVR_SMARTIR_PARAM();

        public NET_DVR_PIRIS_PARAM struPIrisParam = new NET_DVR_PIRIS_PARAM();

        public NET_DVR_LASER_PARAM_CFG struLaserParam = new NET_DVR_LASER_PARAM_CFG();

        public NET_DVR_FFC_PARAM struFFCParam = new NET_DVR_FFC_PARAM();

        public NET_DVR_DDE_PARAM struDDEParam = new NET_DVR_DDE_PARAM();

        public NET_DVR_AGC_PARAM struAGCParam = new NET_DVR_AGC_PARAM();

        public byte byLensDistortionCorrection;

        public byte byDistortionCorrectionLevel;

        public byte byCalibrationAccurateLevel;

        public byte byZoomedInDistantViewLevel;

        public NET_DVR_SNAP_CAMERAPARAMCFG struSnapCCD = new NET_DVR_SNAP_CAMERAPARAMCFG();

        public NET_DVR_OPTICAL_DEHAZE struOpticalDehaze = new NET_DVR_OPTICAL_DEHAZE();

        public NET_DVR_THERMOMETRY_AGC struThermAGC = new NET_DVR_THERMOMETRY_AGC();

        public byte byFusionMode;

        public byte byHorizontalFOV;

        public byte byVerticalFOV;

        public byte byBrightnessSuddenChangeSuppression;

        public byte byGPSEnabled;

        public byte[] byRes2 = new byte[155];
    }

    public static class NET_DVR_VIDEOEFFECT extends HIKSDKStructure {
        public byte byBrightnessLevel;

        public byte byContrastLevel;

        public byte bySharpnessLevel;

        public byte bySaturationLevel;

        public byte byHueLevel;

        public byte byEnableFunc;

        public byte byLightInhibitLevel;

        public byte byGrayLevel;
    }

    public static class NET_DVR_GAIN extends HIKSDKStructure {
        public byte byGainLevel;

        public byte byGainUserSet;

        public byte[] byRes = new byte[2];

        public int dwMaxGainValue;
    }

    public static class NET_DVR_WHITEBALANCE extends HIKSDKStructure {
        public byte byWhiteBalanceMode;

        public byte byWhiteBalanceModeRGain;

        public byte byWhiteBalanceModeBGain;

        public byte[] byRes = new byte[5];
    }

    public static class NET_DVR_EXPOSURE extends HIKSDKStructure {
        public byte byExposureMode;

        public byte byAutoApertureLevel;

        public byte[] byRes = new byte[2];

        public int dwVideoExposureSet;

        public int dwExposureUserSet;

        public int dwRes;
    }

    public static class NET_DVR_GAMMACORRECT extends HIKSDKStructure {
        public byte byGammaCorrectionEnabled;

        public byte byGammaCorrectionLevel;

        public byte[] byRes = new byte[6];
    }

    public static class NET_DVR_WDR extends HIKSDKStructure {
        public byte byWDREnabled;

        public byte byWDRLevel1;

        public byte byWDRLevel2;

        public byte byWDRContrastLevel;

        public byte[] byRes = new byte[16];
    }

    public static class NET_DVR_DAYNIGHT extends HIKSDKStructure {
        public byte byDayNightFilterType;

        public byte bySwitchScheduleEnabled;

        public byte byBeginTime;

        public byte byEndTime;

        public byte byDayToNightFilterLevel;

        public byte byNightToDayFilterLevel;

        public byte byDayNightFilterTime;

        public byte byBeginTimeMin;

        public byte byBeginTimeSec;

        public byte byEndTimeMin;

        public byte byEndTimeSec;

        public byte byAlarmTrigState;
    }

    public static class NET_DVR_BACKLIGHT extends HIKSDKStructure {
        public byte byBacklightMode;

        public byte byBacklightLevel;

        public byte[] byRes1 = new byte[2];

        public int dwPositionX1;

        public int dwPositionY1;

        public int dwPositionX2;

        public int dwPositionY2;

        public byte[] byRes2 = new byte[4];
    }

    public static class NET_DVR_NOISEREMOVE extends HIKSDKStructure {
        public byte byDigitalNoiseRemoveEnable;

        public byte byDigitalNoiseRemoveLevel;

        public byte bySpectralLevel;

        public byte byTemporalLevel;

        public byte byDigitalNoiseRemove2DEnable;

        public byte byDigitalNoiseRemove2DLevel;

        public byte[] byRes = new byte[2];
    }

    public static class NET_DVR_CMOSMODECFG extends HIKSDKStructure {
        public byte byCaptureMod;

        public byte byBrightnessGate;

        public byte byCaptureGain1;

        public byte byCaptureGain2;

        public int dwCaptureShutterSpeed1;

        public int dwCaptureShutterSpeed2;

        public byte[] byRes = new byte[4];
    }

    public static class NET_DVR_DEFOGCFG extends HIKSDKStructure {
        public byte byMode;

        public byte byLevel;

        public byte[] byRes = new byte[6];
    }

    public static class NET_DVR_CMOSMODCFG extends HIKSDKStructure {
        public byte byCaptureMod;

        public byte byBrightnessGate;

        public byte byCaptureGain1;

        public byte byCaptureGain2;

        public int dwCaptureShutterSpeed1;

        public int dwCaptureShutterSpeed2;

        public byte[] byRes = new byte[4];
    }

    public static class NET_DVR_ELECTRONICSTABILIZATION extends HIKSDKStructure {
        public byte byEnable;

        public byte byLevel;

        public byte[] byRes = new byte[6];
    }

    public static class NET_DVR_CORRIDOR_MODE_CCD extends HIKSDKStructure {
        public byte byEnableCorridorMode;

        public byte[] byRes = new byte[11];
    }

    public static class NET_DVR_SMARTIR_PARAM extends HIKSDKStructure {
        public byte byMode;

        public byte byIRDistance;

        public byte byShortIRDistance;

        public byte byLongIRDistance;
    }

    public static class NET_DVR_PIRIS_PARAM extends HIKSDKStructure {
        public byte byMode;

        public byte byPIrisAperture;

        public byte[] byRes = new byte[6];
    }

    public static class NET_DVR_LASER_PARAM_CFG extends HIKSDKStructure {
        public byte byControlMode;

        public byte bySensitivity;

        public byte byTriggerMode;

        public byte byBrightness;

        public byte byAngle;

        public byte byLimitBrightness;

        public byte byEnabled;

        public byte byIllumination;

        public byte byLightAngle;

        public byte[] byRes = new byte[7];
    }

    public static class NET_DVR_FFC_PARAM extends HIKSDKStructure {
        public byte byMode;

        public byte byRes1;

        public short wCompensateTime;

        public byte[] byRes2 = new byte[4];
    }

    public static class NET_DVR_DDE_PARAM extends HIKSDKStructure {
        public byte byMode;

        public byte byNormalLevel;

        public byte byExpertLevel;

        public byte[] byRes = new byte[5];
    }

    public static class NET_DVR_AGC_PARAM extends HIKSDKStructure {
        public byte bySceneType;

        public byte byLightLevel;

        public byte byGainLevel;

        public byte[] byRes = new byte[5];
    }

    public static class NET_DVR_SNAP_CAMERAPARAMCFG extends HIKSDKStructure {
        public byte byWDRMode;

        public byte byWDRType;

        public byte byWDRLevel;

        public byte byRes1;

        public NET_DVR_TIME_EX struStartTime = new NET_DVR_TIME_EX();

        public NET_DVR_TIME_EX struEndTime = new NET_DVR_TIME_EX();

        public byte byDayNightBrightness;

        public byte byMCEEnabled;

        public byte byMCELevel;

        public byte byAutoContrastEnabled;

        public byte byAutoContrastLevel;

        public byte byLSEDetailEnabled;

        public byte byLSEDetailLevel;

        public byte byLPDEEnabled;

        public byte byLPDELevel;

        public byte byLseEnabled;

        public byte byLseLevel;

        public byte byLSEHaloLevel;

        public byte byLseType;

        public byte[] byRes2 = new byte[3];

        public NET_DVR_TIME_EX struLSEStartTime = new NET_DVR_TIME_EX();

        public NET_DVR_TIME_EX struLSEEndTime = new NET_DVR_TIME_EX();

        public byte byLightLevel;

        public byte byPlateContrastLevel;

        public byte byPlateSaturationLevel;

        public byte[] byRes = new byte[9];
    }

    public static class NET_DVR_OPTICAL_DEHAZE extends HIKSDKStructure {
        public byte byEnable;

        public byte[] byRes = new byte[7];
    }

    public static class NET_DVR_THERMOMETRY_AGC extends HIKSDKStructure {
        public byte byMode;

        public byte[] byRes1 = new byte[3];

        public int iHighTemperature;

        public int iLowTemperature;

        public byte[] byRes = new byte[8];
    }

    public static class NET_DVR_CHECK_DEV_STATE extends HIKSDKStructure {
        public int dwTimeout;

        public DEV_WORK_STATE_CB fnStateCB;

        Pointer pUserData;

        public byte[] byRes = new byte[60];
    }

    public static class NET_DVR_FLOW_INFO extends HIKSDKStructure {
        public int dwSize;

        public int dwSendFlowSize;

        public int dwRecvFlowSize;

        public byte[] byRes = new byte[20];
    }

    public static class NET_DVR_AES_KEY_INFO extends HIKSDKStructure {
        public byte[] sAESKey = new byte[16];

        public byte[] byRes = new byte[64];
    }

    public static class NET_DVR_ALARM_RS485CFG extends HIKSDKStructure {
        public int dwSize;

        public byte[] sDeviceName = new byte[32];

        public short wDeviceType;

        public short wDeviceProtocol;

        public int dwBaudRate;

        public byte byDataBit;

        public byte byStopBit;

        public byte byParity;

        public byte byFlowcontrol;

        public byte byDuplex;

        public byte byWorkMode;

        public byte byChannel;

        public byte bySerialType;

        public byte byMode;

        public byte byOutputDataType;

        public byte byAddress;

        public byte[] byRes = new byte[33];
    }

    public static class NET_DVR_ALARMHOST_RS485_SLOT_CFG extends HIKSDKStructure {
        public int dwSize;

        public byte[] sDeviceName = new byte[32];

        public short wDeviceType;

        public byte wDeviceProtocol;

        public short wAddress;

        public byte byChannel;

        public byte bySlotChan;

        public byte[] byRes = new byte[60];
    }

    public static class NET_DVR_VIDEOWALLDISPLAYPOSITION extends HIKSDKStructure {
        public int dwSize;

        public byte byEnable;

        public byte byCoordinateType;

        public byte[] byRes1 = new byte[2];

        public int dwVideoWallNo;

        public int dwDisplayNo;

        public NET_DVR_RECTCFG_EX struRectCfg;

        public byte[] byRes2 = new byte[64];
    }

    public static class NET_DVR_DISPLAYCFG extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_DISPLAYPARAM[] struDisplayParam = new NET_DVR_DISPLAYPARAM[512];

        public byte[] byRes2 = new byte[128];
    }

    public static class NET_DVR_DISPLAYPARAM extends HIKSDKStructure {
        public int dwDisplayNo;

        public byte byDispChanType;

        public byte[] byRes = new byte[11];
    }

    public static class NET_DVR_WALLOUTPUTPARAM extends HIKSDKStructure {
        public int dwSize;

        public int dwResolution;

        public NET_DVR_VIDEOEFFECT struRes;

        public byte byVideoFormat;

        public byte byDisplayMode;

        public byte byBackgroundColor;

        public byte byUseEDIDResolution;

        public short wLEDWidth;

        public short wLEDHeight;

        public NET_DVR_RGB_COLOR struBackColor;

        public byte byLinkStatus;

        public byte[] byRes2 = new byte[51];
    }

    public static class WALLOUTPUTPARAM_ARRAY extends HIKSDKStructure {
        public NET_DVR_WALLOUTPUTPARAM[] strWalloutputParm;

        public WALLOUTPUTPARAM_ARRAY(int iLen) {
            this.strWalloutputParm = new NET_DVR_WALLOUTPUTPARAM[iLen];
        }
    }

    public static interface FRealDataCallBack_V30 extends Callback {
        void invoke(int param1Int1, int param1Int2, ByteByReference param1ByteByReference, int param1Int3, Pointer param1Pointer);
    }

    public static interface FMSGCallBack extends Callback {
        void invoke(int param1Int1, NET_DVR_ALARMER param1NET_DVR_ALARMER, Pointer param1Pointer1, int param1Int2, Pointer param1Pointer2);
    }

    public static interface FMSGCallBack_V31 extends Callback {
        boolean invoke(int param1Int1, NET_DVR_ALARMER param1NET_DVR_ALARMER, Pointer param1Pointer1, int param1Int2, Pointer param1Pointer2);
    }

    public static interface FMessCallBack extends Callback {
        boolean invoke(int param1Int1, String param1String1, String param1String2, int param1Int2);
    }

    public static interface FMessCallBack_EX extends Callback {
        boolean invoke(int param1Int1, int param1Int2, String param1String, int param1Int3);
    }

    public static interface FMessCallBack_NEW extends Callback {
        boolean invoke(int param1Int1, String param1String1, String param1String2, int param1Int2, short param1Short);
    }

    public static interface FMessageCallBack extends Callback {
        boolean invoke(int param1Int1, String param1String1, String param1String2, int param1Int2, int param1Int3);
    }

    public static interface FExceptionCallBack extends Callback {
        void invoke(int param1Int1, int param1Int2, int param1Int3, Pointer param1Pointer);
    }

    public static interface FDrawFun extends Callback {
        void invoke(int param1Int1, W32API.HDC param1HDC, int param1Int2);
    }

    public static interface FStdDataCallBack extends Callback {
        void invoke(int param1Int1, int param1Int2, ByteByReference param1ByteByReference, int param1Int3, int param1Int4);
    }

    public static interface FPlayDataCallBack extends Callback {
        void invoke(int param1Int1, int param1Int2, ByteByReference param1ByteByReference, int param1Int3, int param1Int4);
    }

    public static interface FPlayESCallBack extends Callback {
        void invoke(int param1Int, NET_DVR_PACKET_INFO_EX param1NET_DVR_PACKET_INFO_EX, Pointer param1Pointer);
    }

    public static interface FVoiceDataCallBack extends Callback {
        void invoke(int param1Int1, Pointer param1Pointer, int param1Int2, byte param1Byte, int param1Int3);
    }

    public static interface FVoiceDataCallBack_V30 extends Callback {
        void invoke(int param1Int1, Pointer param1Pointer1, int param1Int2, byte param1Byte, Pointer param1Pointer2);
    }

    public static interface FVoiceDataCallBack_MR extends Callback {
        void invoke(int param1Int1, Pointer param1Pointer, int param1Int2, byte param1Byte, int param1Int3);
    }

    public static interface FVoiceDataCallBack_MR_V30 extends Callback {
        void invoke(int param1Int1, Pointer param1Pointer1, int param1Int2, byte param1Byte, Pointer param1Pointer2);
    }

    public static interface FVoiceDataCallBack2 extends Callback {
        void invoke(String param1String, int param1Int, Pointer param1Pointer);
    }

    public static interface FSerialDataCallBack extends Callback {
        void invoke(int param1Int1, String param1String, int param1Int2, int param1Int3);
    }

    public static interface FRowDataCallBack extends Callback {
        void invoke(int param1Int1, String param1String1, int param1Int2, String param1String2, int param1Int3, int param1Int4);
    }

    public static interface FColLocalDataCallBack extends Callback {
        void invoke(int param1Int1, String param1String1, int param1Int2, String param1String2, int param1Int3, int param1Int4);
    }

    public static interface FColGlobalDataCallBack extends Callback {
        void invoke(int param1Int1, String param1String1, int param1Int2, String param1String2, int param1Int3, int param1Int4);
    }

    public static interface FJpegdataCallBack extends Callback {
        int invoke(int param1Int1, int param1Int2, String param1String1, String param1String2, String param1String3, int param1Int3, int param1Int4);
    }

    public static interface FPostMessageCallBack extends Callback {
        int invoke(int param1Int1, int param1Int2);
    }

    public static interface DEV_WORK_STATE_CB extends Callback {
        boolean invoke(Pointer param1Pointer, int param1Int, NET_DVR_WORKSTATE_V40 param1NET_DVR_WORKSTATE_V40);
    }

    public static interface FLOWTESTCALLBACK extends Callback {
        void invoke(int param1Int, NET_DVR_FLOW_INFO param1NET_DVR_FLOW_INFO, Pointer param1Pointer);
    }

    public static interface FSerialDataCallBack_V40 extends Callback {
        void invoke(int param1Int1, int param1Int2, byte[] param1ArrayOfbyte, int param1Int3, Pointer param1Pointer);
    }

    public static interface FRemoteConfigCallBack extends Callback {
        void invoke(int param1Int1, Pointer param1Pointer1, int param1Int2, Pointer param1Pointer2);
    }

    public static class TimeSegParam extends HIKSDKStructure {
        public NET_DVR_TIME struBeginTime;

        public NET_DVR_TIME struEndTime;

        public int dwInterval;

        public byte[] byRes = new byte[76];
    }

    public static class TimePointParam extends HIKSDKStructure {
        public NET_DVR_TIME struTimePoint;

        public byte[] byRes = new byte[104];
    }

    public static class GpsDataParamUion extends Union {
        public TimeSegParam timeSeg = new TimeSegParam();

        public TimePointParam timePoint = new TimePointParam();
    }

    public static class NET_DVR_GET_GPS_DATA_PARAM extends HIKSDKStructure {
        public int dwCmdType;

        public GpsDataParamUion gpsDataParam;

        public void read() {
            super.read();
            switch (this.dwCmdType) {
                case 0:
                    this.gpsDataParam.setType(TimeSegParam.class);
                    break;
                case 1:
                    this.gpsDataParam.setType(TimePointParam.class);
                    break;
            }
            this.gpsDataParam.read();
        }

        public void write() {
            super.write();
            this.gpsDataParam.write();
        }
    }

    public static class NET_DVR_GPS_INFO extends HIKSDKStructure {
        public byte[] byDirection = new byte[2];

        public byte bySvs;

        public byte byLocateMode;

        public short wHDOP;

        public short wHeight;

        public int dwLatitude;

        public int dwLongitude;

        public int dwVehicleSpeed;

        public int dwVehicleDirection;

        public byte[] byRes = new byte[8];
    }

    public static class NET_DVR_GPS_DATA extends HIKSDKStructure {
        public NET_DVR_GPS_INFO struGPSInfo;

        public NET_DVR_TIME struTime;

        public byte[] byRes = new byte[12];
    }

    public static interface fGPSDataCallback extends Callback {
        void invoke(int param1Int1, int param1Int2, Pointer param1Pointer1, int param1Int3, Pointer param1Pointer2);
    }

    public static class NET_DVR_JPEGPICTURE_WITH_APPENDDATA extends HIKSDKStructure {
        public int dwSize;

        public int dwChannel;

        public int dwJpegPicLen;

        public Pointer pJpegPicBuff;

        public int dwJpegPicWidth;

        public int dwJpegPicHeight;

        public int dwP2PDataLen;

        public Pointer pP2PDataBuff;

        public byte byIsFreezedata;

        public byte[] byRes = new byte[255];
    }

    public static class DATE_TIME extends HIKSDKStructure {
        public short year;

        public short month;

        public short dayOfWeek;

        public short day;

        public short hour;

        public short minute;

        public short second;

        public short milliSecond;
    }

    public static class STREAM_RT_DATA_INFO_S extends HIKSDKStructure {
        public int u32RTDataType;

        public int u32FrmNum;

        public int u32StdStamp;

        public DATE_TIME stTime;

        public int u32Width;

        public int u32Height;

        public int u32Len;

        public int u32Fps;

        public int u32Chan;
    }

    public static class STREAM_FS_SUPPLE_INFO_TEMP extends HIKSDKStructure {
        public int u32TmDataMode;

        public int u32TmScale;

        public int u32TmOffset;

        public int byIsFreezedata;
    }

    public static class STREAM_FARME_INFO_TEMP extends HIKSDKStructure {
        public int u32MagicNo;

        public int u32HeaderSize;

        public int u32StreamType;

        public int u32StreamLen;

        public STREAM_RT_DATA_INFO_S stRTDataInfo;

        public STREAM_FS_SUPPLE_INFO_TEMP stFsSuppleInfo;

        public int[] res = new int[12];

        public int u32CrcVal;
    }

    public static class NET_DVR_THERMOMETRYRULE_TEMPERATURE_INFO extends HIKSDKStructure {
        public float fMaxTemperature;

        public float fMinTemperature;

        public float fAverageTemperature;

        public NET_VCA_POINT struHighestPoint;

        public NET_VCA_POINT struLowestPoint;

        public byte byIsFreezedata;

        public byte[] byRes = new byte[15];
    }

    public static class REMOTECONFIGSTATUS_THERMOMETRY extends HIKSDKStructure {
        public byte[] byStatus = new byte[4];

        public byte[] byErrorCode = new byte[4];
    }

    public static class NET_DVR_FIREDETECTION_ALARM extends HIKSDKStructure {
        public int dwSize;

        public int dwRelativeTime;

        public int dwAbsTime;

        public NET_VCA_DEV_INFO struDevInfo;

        public short wPanPos;

        public short wTiltPos;

        public short wZoomPos;

        public byte byPicTransType;

        public byte byRes1;

        public int dwPicDataLen;

        public Pointer pBuffer;

        public NET_VCA_RECT struRect;

        public NET_VCA_POINT struPoint;

        public short wFireMaxTemperature;

        public short wTargetDistance;

        public byte byStrategyType;

        public byte byAlarmSubType;

        public byte byPTZPosExEnable;

        public byte byRes2;

        public NET_PTZ_INFO struPtzPosEx;

        public int dwVisiblePicLen;

        public Pointer pVisiblePicBuf;

        public Pointer pSmokeBuf;

        public short wDevInfoIvmsChannelEx;

        public byte byRes3;

        public byte byFireScanWaitMode;

        public int dwVisibleChannel;

        public byte byTimeDiffFlag;

        public char cTimeDifferenceH;

        public char cTimeDifferenceM;

        public byte[] byRes = new byte[49];
    }

    public static class NET_DVR_DEVSERVER_CFG extends HIKSDKStructure {
        public int dwSize;

        public byte byIrLampServer;

        public byte bytelnetServer;

        public byte byABFServer;

        public byte byEnableLEDStatus;

        public byte byEnableAutoDefog;

        public byte byEnableSupplementLight;

        public byte byEnableDeicing;

        public byte byEnableVisibleMovementPower;

        public byte byEnableThermalMovementPower;

        public byte byEnablePtzPower;

        public byte byPowerSavingControl;

        public byte byCaptureWithSupplimentLightEnabled;

        public byte[] byRes = new byte[244];
    }

    public static class NET_DVR_UPLOAD_FILE_RET extends HIKSDKStructure {
        public byte[] sUrl = new byte[240];

        public byte[] byRes = new byte[260];
    }

    public static class NET_DVR_FLOW_TEST_PARAM extends HIKSDKStructure {
        public int dwSize;

        public int lCardIndex;

        public int dwInterval;

        public byte[] byRes = new byte[8];
    }

    public static class NET_DVR_RECORD_TIME_SPAN_INQUIRY extends HIKSDKStructure {
        public int dwSize;

        public byte byType;

        public byte[] byRes = new byte[63];
    }

    public static class NET_DVR_RECORD_TIME_SPAN extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_TIME strBeginTime;

        public NET_DVR_TIME strEndTime;

        public byte byType;

        public byte[] byRes = new byte[35];
    }

    public static class NET_DVR_MRD_SEARCH_PARAM extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_STREAM_INFO struStreamInfo = new NET_DVR_STREAM_INFO();

        public short wYear;

        public byte byMonth;

        public byte byDrawFrame;

        public byte byStreamType;

        public byte byLocalOrUTC;

        public byte[] byRes = new byte[30];
    }

    public static class NET_DVR_MRD_SEARCH_RESULT extends HIKSDKStructure {
        public int dwSize;

        public byte[] byRecordDistribution = new byte[32];

        public byte[] byHasEventRecode = new byte[31];

        public byte byRes;
    }

    public static class NET_DVR_GIS_INFO extends HIKSDKStructure {
        public int dwSize;

        public float fAzimuth;

        public float fHorizontalValue;

        public float fVerticalValue;

        public float fVisibleRadius;

        public float fMaxViewRadius;

        public byte byLatitudeType;

        public byte byLongitudeType;

        public byte byPTZPosExEnable;

        public byte byRes1;

        public NET_DVR_LLI_PARAM struLatitude = new NET_DVR_LLI_PARAM();

        public NET_DVR_LLI_PARAM struLongitude = new NET_DVR_LLI_PARAM();

        public NET_DVR_PTZPOS_PARAM struPtzPos = new NET_DVR_PTZPOS_PARAM();

        public NET_DVR_SENSOR_PARAM struSensorParam = new NET_DVR_SENSOR_PARAM();

        public NET_PTZ_INFO struPtzPosEx = new NET_PTZ_INFO();

        public float fMinHorizontalValue;

        public float fMaxHorizontalValue;

        public float fMinVerticalValue;

        public float fMaxVerticalValue;

        public byte[] byRes = new byte[220];
    }

    public static class NET_DVR_GBT28181_CHANINFO_CFG extends HIKSDKStructure {
        public int dwSize;

        public byte[] szVideoChannelNumID = new byte[64];

        public byte[] byRes = new byte[256];
    }

    public static class NET_DVR_CRUISEPOINT_COND extends HIKSDKStructure {
        public int dwSize;

        public int dwChan;

        public short wRouteNo;

        public byte[] byRes = new byte[30];
    }

    public static class NET_DVR_CRUISEPOINT_V40 extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_CRUISEPOINT_PARAM[] struCruisePoint = (NET_DVR_CRUISEPOINT_PARAM[])(new NET_DVR_CRUISEPOINT_PARAM()).toArray(128);

        public byte[] byRes = new byte[64];
    }

    public static class NET_DVR_CRUISEPOINT_V50 extends HIKSDKStructure {
        public int dwSize;

        public NET_DVR_CRUISEPOINT_PARAM[] struCruisePoint = (NET_DVR_CRUISEPOINT_PARAM[])(new NET_DVR_CRUISEPOINT_PARAM()).toArray(256);

        public byte[] byRes = new byte[64];
    }

    public static class NET_DVR_CRUISEPOINT_PARAM extends HIKSDKStructure {
        public short wPresetNo;

        public short wDwell;

        public byte bySpeed;

        public byte bySupport256PresetNo;

        public byte[] byRes = new byte[6];
    }
}
